Drop support for running without GLib event loop
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
nux (Ubuntu) |
Fix Released
|
Medium
|
Andrea Azzarone |
Bug Description
Nux has support in conditional compilation for running without the GLib event loop.
This bug is about getting support for that dropped. Considering that the GLib event loop is supported on all platforms that Nux supports, there isn't much of a reason for running without it.
The main reasons it should be removed are :
1. Its not used by anybody
2. Maintenance burden - every time you want to use some new event source, you have to provide support on both
3. Its completely broken from a code inspection POV:
-> It uses while (true) and busy-waits for new events (most of the time)
-> Sometimes the event retrieval sources block, sometimes they don't.
-> The check-for-events and dispatch-event code is in the same function for every source, which means that if one source blocks (eg XLib), and the other has pending events (Geis) then there's a potential deadlock until the first one unblocks
-> There's support for both Geis and XLib in the non-glib event loop, except that the Geis portion depends on compiling with GLib in order to actually retrieve events, rendering it non-functional in this mode.
Related branches
- Marco Trevisan (Treviño): Approve
- Eleni Maria Stea (community): Abstain
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 468 lines (+1/-186)9 files modifiedNux/GeisAdapter.cpp (+0/-10)
Nux/GeisAdapter.h (+0/-2)
Nux/MainLoopGLib.cpp (+0/-5)
Nux/MainLoopGLib.h (+0/-4)
Nux/Nux.h (+0/-3)
Nux/TimerProc.cpp (+1/-10)
Nux/TimerProc.h (+0/-4)
Nux/WindowThread.cpp (+0/-134)
Nux/WindowThread.h (+0/-14)
Changed in nux: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
status: | Confirmed → Triaged |
Changed in nux (Ubuntu): | |
status: | New → In Progress |
Changed in nux: | |
status: | Triaged → In Progress |
Changed in nux (Ubuntu): | |
importance: | Undecided → Medium |
Changed in nux: | |
assignee: | nobody → Andrea Azzarone (azzar1) |
Changed in nux (Ubuntu): | |
assignee: | nobody → Andrea Azzarone (azzar1) |
Changed in nux: | |
milestone: | none → 4.0.7 |
Changed in nux: | |
milestone: | 4.0.7 → 4.0.8 |
no longer affects: | nux |
This bug was fixed in the package nux - 4.0.8+15. 10.20150921. 1-0ubuntu1
--------------- 15.10.20150921. 1-0ubuntu1) wily; urgency=medium
nux (4.0.8+
[ Stephen M. Webb ] Version) : bump to 3.9.6 (no changes)
* new upstream release 4.0.8
* debian/control (Standards-
[ Marco Trevisan (Treviño) ] xorg-video- dummy as build dependency
* debian/control:
- add xserver-
- set libnux-4.0-common arch to all
- depend on source:Version of libnux-4.0-common
[ Andrea Azzarone <email address hidden> ]
* Remove alternative select mainloop. (LP: #1111216)
[ Marco Trevisan (Treviño) ]
* WindowCompositor: emit mouse_leave signal when releasing mouse over
a new area (LP: #1496140)
-- Marco Trevisan (Treviño) <mail@3v1n0.net> Mon, 21 Sep 2015 17:41:54 +0000