Richard Fuchs
2ad1d6f65e
xmlrpc still segfaulting. leaves no choice but to fork out a new process, ugh.
14 years ago
Richard Fuchs
f4833f6b74
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
a4625fbad9
enough with the glib threading nonsense, it's only causing problems. revert to good old pthread stuff
14 years ago
Richard Fuchs
fabcb53a3b
the curl xmlrpc transport isnt playing nicely - revert to default
14 years ago
Richard Fuchs
08c764c748
cant decref null references
14 years ago
Michael Prokop
10cfabf977
wrap and sort items in Debian packaging files
This makes reviews and diffs easier and helps in avoiding duplicate entries.
devscripts's wrap-and-sort ftw.
Closes: https://bugtracker.sipwise.com/view.php?id=1845
From: Michael Prokop <mprokop@sipwise.com>
14 years ago
Richard Fuchs
4b7d4d24cd
dont block fatal core-dumping signals
14 years ago
Richard Fuchs
36fe21f9ec
make the simulator delete all calls at the end
14 years ago
Richard Fuchs
63b034e623
udp can be unreliable even over localhost
14 years ago
Richard Fuchs
d8771320d7
new call simulator script for testing against udp protocol
14 years ago
Richard Fuchs
8af139ad10
the status command gets really slow under valgrind, so put it into background
14 years ago
Richard Fuchs
0f6d898171
add proper locking to callstream setup procedure
14 years ago
Richard Fuchs
94f2f320a6
actually the call struct needs neither linked flag nor shutdown flag due to the sequence of events and locking
14 years ago
Richard Fuchs
d8776907f8
need to lock the callstream a bit earlier
14 years ago
Richard Fuchs
ab3b8c60f0
fix a silly, threading-unrelated, statistics-skewing bug
14 years ago
Richard Fuchs
45f34b9784
turns out you actually have to free/destroy mutexes. who woulda thunk?
14 years ago
Richard Fuchs
54353022ff
om nom nom memory leak... well, reference count leak
14 years ago
Richard Fuchs
b7a68659b1
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
683b716885
here we go with the subtle race conditions
14 years ago
Richard Fuchs
806920cc52
dont abort polling on EINTR
14 years ago
Richard Fuchs
0d6349f14c
and for the interesting part: multiple poller threads
14 years ago
Richard Fuchs
942c96c96d
move poller timers and polling into a separate thread
14 years ago
Richard Fuchs
d25d1c2009
making main() pretty by moving stuff out of the way
14 years ago
Richard Fuchs
ddffe5eeec
global xmlrpc init must be done prior to any threading
14 years ago
Richard Fuchs
d1fbf9bef9
alarms arent usable in a threaded environment, so use curl internal timeout instead
14 years ago
Richard Fuchs
feeeee2fab
must extract needed tags for xmlrpc call teardown prior to destroying the calls
14 years ago
Richard Fuchs
973d92d9c7
moving call teardown due to timeout to a separate thread
14 years ago
Richard Fuchs
47a9a00a11
it makes no sense to return a value from an effectively detached thread
14 years ago
Richard Fuchs
31a5ff9c29
detached threads considered harmful, so simulate them by keeping a threads-to-join list
14 years ago
Richard Fuchs
bc647862e5
use sigtimedwait for proper sighandler thread shutdown
14 years ago
Richard Fuchs
badae5a874
lets get some threads going then, starting with a signal handler
14 years ago
Richard Fuchs
2dd6cfe68c
keeping the lock hold time to a minimum in lengthy calls_status operation
14 years ago
Richard Fuchs
8c2c69f5e6
make the stats collection thread-safe
14 years ago
Richard Fuchs
d9e09f33bc
lets try with a lot of large, nested, naive locks
14 years ago
Richard Fuchs
ae5a36f5ce
getting rid of call->log_info and introducing call->lock
14 years ago
Richard Fuchs
900f76a17e
make the callmaster struct private - also requires update to redis module
14 years ago
Richard Fuchs
aeb5398b0d
granular lock for "ports used" bit field
14 years ago
Richard Fuchs
a8680cc2d9
TOS for ipv6 needs an int to work
14 years ago
Richard Fuchs
0b0b41e67f
gonna need more than one lock in callmaster, so rename the one we have
14 years ago
Richard Fuchs
4cb63b5edf
need to handle the no-reply case to avoid deadlocks with bad cookies
14 years ago
Richard Fuchs
4588e13a76
getting rid of more global variables
14 years ago
Richard Fuchs
e033d1da1c
EINTR requires special handling
14 years ago
Richard Fuchs
1ec2c96655
living on the edge with epoll edge-triggered behavior
14 years ago
Richard Fuchs
db15692f21
using thread-local-storage for eliminating constant calls to time()
14 years ago
Richard Fuchs
45945f6c7f
it helps to actually initialize the condition var
14 years ago
Richard Fuchs
26824993e2
preliminary attempt to make the udp controller thread-safe
14 years ago
Richard Fuchs
5f5e158d76
private structs make for safer threading
14 years ago
Richard Fuchs
ebd2893e96
missing a streambuf lock here
14 years ago
Richard Fuchs
419f6bb230
and the tcp controller becomes thread-safe
14 years ago
Richard Fuchs
6e474ccfc0
add appropriate threading compile flags
14 years ago