Commit Graph

199 Commits (f5f9f70ea53cfec304a92faaabb8fa68817da698)

Author SHA1 Message Date
Richard Fuchs ac5fc5f99b fix logging inconsistency
14 years ago
Richard Fuchs 7fa39e50d9 be a lazy developer and try to load the .so locally
14 years ago
Richard Fuchs cdad0babce adding .gitignore files
14 years ago
Richard Fuchs 4da3a8050d its always nice to call openlog()
14 years ago
Richard Fuchs f20f72c27a reorder calls to redis for proper locking
14 years ago
Richard Fuchs 22083298b9 a more robust thread shutdown procedure
14 years ago
Richard Fuchs 2832dadc00 since xmlrpc is still segfaulting even in its own process, disable core dumps in the child and retry the xmlrpc call up to 3 times if the child terminates abnormally. jumping through hoops ftw!
14 years ago
Richard Fuchs 5e63928da4 xmlrpc still segfaulting. leaves no choice but to fork out a new process, ugh.
14 years ago
Richard Fuchs 41da40f2f7 xmlrpc calls still causing segfaults, lets try with a dedicated client object per call... i'm starting to dislike this library
14 years ago
Richard Fuchs 27acaf75fd enough with the glib threading nonsense, it's only causing problems. revert to good old pthread stuff
14 years ago
Richard Fuchs 71b38dd1f5 the curl xmlrpc transport isnt playing nicely - revert to default
14 years ago
Richard Fuchs a131fd6803 cant decref null references
14 years ago
Richard Fuchs c5693b65a4 dont block fatal core-dumping signals
14 years ago
Richard Fuchs c11d0e2882 add proper locking to callstream setup procedure
14 years ago
Richard Fuchs 5f40e7d173 actually the call struct needs neither linked flag nor shutdown flag due to the sequence of events and locking
14 years ago
Richard Fuchs 81562e0a50 need to lock the callstream a bit earlier
14 years ago
Richard Fuchs 19f4bc3121 fix a silly, threading-unrelated, statistics-skewing bug
14 years ago
Richard Fuchs 5ea20be0ae turns out you actually have to free/destroy mutexes. who woulda thunk?
14 years ago
Richard Fuchs 7b20eb4b84 om nom nom memory leak... well, reference count leak
14 years ago
Richard Fuchs cb9967260e analoguous to the last race, call_destroy() must not assume that it's getting the last reference to the call
14 years ago
Richard Fuchs ad308c149e here we go with the subtle race conditions
14 years ago
Richard Fuchs 0050f57de6 dont abort polling on EINTR
14 years ago
Richard Fuchs de7ef884fa and for the interesting part: multiple poller threads
14 years ago
Richard Fuchs c44673113d move poller timers and polling into a separate thread
14 years ago
Richard Fuchs 0eb3694422 making main() pretty by moving stuff out of the way
14 years ago
Richard Fuchs e5aa11aa6b global xmlrpc init must be done prior to any threading
14 years ago
Richard Fuchs 22043b686f alarms arent usable in a threaded environment, so use curl internal timeout instead
14 years ago
Richard Fuchs 4304bf48c2 must extract needed tags for xmlrpc call teardown prior to destroying the calls
14 years ago
Richard Fuchs 358a194dcc moving call teardown due to timeout to a separate thread
14 years ago
Richard Fuchs c8c2928cef it makes no sense to return a value from an effectively detached thread
14 years ago
Richard Fuchs c5aa1e33f4 detached threads considered harmful, so simulate them by keeping a threads-to-join list
14 years ago
Richard Fuchs 61ffa69282 use sigtimedwait for proper sighandler thread shutdown
14 years ago
Richard Fuchs 5cecf39605 lets get some threads going then, starting with a signal handler
14 years ago
Richard Fuchs bfcfc7b471 keeping the lock hold time to a minimum in lengthy calls_status operation
14 years ago
Richard Fuchs 95d9de7bc4 make the stats collection thread-safe
14 years ago
Richard Fuchs c19b99903c lets try with a lot of large, nested, naive locks
14 years ago
Richard Fuchs 28ac7b996c getting rid of call->log_info and introducing call->lock
14 years ago
Richard Fuchs 9fecc4d153 make the callmaster struct private - also requires update to redis module
14 years ago
Richard Fuchs e02b5398ce granular lock for "ports used" bit field
14 years ago
Richard Fuchs dd48d554c9 TOS for ipv6 needs an int to work
14 years ago
Richard Fuchs 1b20dcaa44 gonna need more than one lock in callmaster, so rename the one we have
14 years ago
Richard Fuchs 8d4703e2c7 need to handle the no-reply case to avoid deadlocks with bad cookies
14 years ago
Richard Fuchs 0dac780f86 getting rid of more global variables
14 years ago
Richard Fuchs c8021adadf EINTR requires special handling
14 years ago
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 107113eefc it helps to actually initialize the condition var
14 years ago
Richard Fuchs 24a6815e87 preliminary attempt to make the udp controller thread-safe
14 years ago
Richard Fuchs 161b2eec6a private structs make for safer threading
14 years ago
Richard Fuchs c24514404e missing a streambuf lock here
14 years ago