xwords/xwords4/relay
ehouse 8284799abe Fix crashes resulting from deleting cref instances in one thread while
another wanted to operate on them.  The root problem is that you can't
dispose of a mutex while somebody's blocking on it.  So now the
locking mutexes live inside the cref class.  When the lock owner
realizes the cref needs to die, it sets a flag and it's moved to a
recycled list.  A thread blocking on the mutex will then get it, but
checks the flag and releases it immediately if it's being recycled.
(Also improve the http interface a bit.)  With these changes I've run
31K (and counting) games against the relay without a crash or deadlock
(using sim_real.sh.)  The main problem that remains is that sometimes
two games using the same cookie wind up with two crefs (and so never
connect.)
2009-07-28 05:15:26 +00:00
..
.cvsignore first checked in 2005-03-06 18:30:59 +00:00
configs.cpp store keys and values as const char* instead of string since the 2009-07-16 04:23:02 +00:00
configs.h store keys and values as const char* instead of string since the 2009-07-16 04:23:02 +00:00
cref.cpp Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
cref.h Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
crefmgr.cpp Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
crefmgr.h Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
ctrl.cpp Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
ctrl.h Add an http interface (read-only web console). 2009-02-28 16:15:59 +00:00
http.cpp Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
http.h Add an http interface (read-only web console). 2009-02-28 16:15:59 +00:00
lstnrmgr.cpp replace int with bool where appropriate; fix to compile with newer g++ 2008-12-30 05:13:30 +00:00
lstnrmgr.h replace int with bool where appropriate; fix to compile with newer g++ 2008-12-30 05:13:30 +00:00
Makefile don't use -lmcheck. It causes a lot of crashes in places where it 2009-07-28 05:00:18 +00:00
mlock.h Fix crashes resulting from deleting cref instances in one thread while 2009-07-28 05:15:26 +00:00
permid.cpp rename now() as uptime(); drop NTHREADS to 1 for now; include time of 2009-03-10 12:52:17 +00:00
permid.h rename now() as uptime(); drop NTHREADS to 1 for now; include time of 2009-03-10 12:52:17 +00:00
states.cpp shorten state names so they take up less webpage space. 2009-07-28 05:06:25 +00:00
states.h Make cooperation in a heartbeat scheme a compile-time option. This is 2007-11-18 23:38:56 +00:00
timermgr.cpp cleanup 2009-07-28 05:09:24 +00:00
timermgr.h replace int with bool where appropriate; fix to compile with newer g++ 2008-12-30 05:13:30 +00:00
tpool.cpp Don't alloc storage for fds and log buffer each time through poll 2009-07-28 05:08:15 +00:00
tpool.h int->bool 2009-07-13 02:58:16 +00:00
xwrelay.conf rename now() as uptime(); drop NTHREADS to 1 for now; include time of 2009-03-10 12:52:17 +00:00
xwrelay.cpp cleanup 2009-07-28 05:09:24 +00:00
xwrelay.css Add an http interface (read-only web console). 2009-02-28 16:15:59 +00:00
xwrelay.h Helps to compile platforms too before checking in... 2009-02-01 16:20:18 +00:00
xwrelay.sh tweaks to stop/start script to run on an ISP's server better 2008-12-31 04:26:37 +00:00
xwrelay_priv.h rename now() as uptime(); drop NTHREADS to 1 for now; include time of 2009-03-10 12:52:17 +00:00