Richard Fuchs
d07194897b
living on the edge with epoll edge-triggered behavior
14 years ago
Richard Fuchs
8edc107f2d
using thread-local-storage for eliminating constant calls to time()
14 years ago
Richard Fuchs
24a6815e87
preliminary attempt to make the udp controller thread-safe
14 years ago
Richard Fuchs
2905c333f7
making timers thread-safe
14 years ago
Richard Fuchs
856c0b9cce
make the obj_ primitives more liberal to make for easier calling
14 years ago
Richard Fuchs
540d847d08
catch the inevitable disaster early and define our own mutex types. sigh. and there i was, thinking that using the glib types would make things easier.
14 years ago
Richard Fuchs
e11d55b3fb
glib < 2.32 requires use of distinct static mutex type
14 years ago
Richard Fuchs
2b63e794df
Prepare for multi-threaded operation
Introduce generic "objects" with reference counting primitives and automatic
resource deallocation when no refs are left ("garbage collection"). Overhaul
poller framework to make extensive use of these objects to allow for future
thread-concurrent operation.
No locking added anywhere yet except in poller. Poller is still not 100%
thread safe, but close.
Valgrind reports no errors or memleaks.
14 years ago
Richard Fuchs
8b320e76d9
lets be more strict with timer removal
14 years ago
Richard Fuchs
52ef56d106
it's inefficient to walk the entire list of poller items every second just to look for times which we don't really use. so instead, use the linked timers list for this purpose. this is also inefficient for timer remove, but since we don't use those times anyway, we don't care.
14 years ago
Richard Fuchs
ee30ea647a
BSEARCH macro is obsoleted
14 years ago
Richard Fuchs
69e5a2840a
use glib slice allocator in poller
14 years ago
Richard Fuchs
48f0a61277
good bye poll(), hello epoll_*()
14 years ago
Richard Fuchs
593121d551
create tags and branches
15 years ago