home bbs files messages ]

Just a sample of the Echomail archive

<< oldest | < older | list | newer > | newest >> ]

 Message 48696 
 Rob Swindell (on Windows 11) to Git commit to main/sbbs/master 
 src/sbbs3/ctrl/MainFormUnit.cpp 
 12 Jan 26 22:51:03 
 
TZUTC: -0800
MSGID: 54127.syncprog@1:103/705 2dcbf4c6
PID: Synchronet 3.21b-Linux master/177a369d2 Jan 04 2026 GCC 12.2.0
TID: SBBSecho 3.34-Linux master/f717faea9 Jan 12 2026 GCC 12.2.0
BBSID: VERT
CHRS: ASCII 1
FORMAT: flowed
https://gitlab.synchro.net/main/sbbs/-/commit/f65fd89a106023a5aa7570ce
Modified Files:
	src/sbbs3/ctrl/MainFormUnit.cpp
Log Message:
Resolve crashes during graceful server termination(s)

These crashes have been happening seemingly forever, but only noticed (by me)
when running in a debugger, otherwise Windows seems to suppress any exception
message/popup since the process terminates anyway.

The problem appears to be that we were setting app controls (e.g. start/stop
button states) in the startup->set_state callbacks and it was possible through
race conditions that the application (or at least the forms) were actually
destroyed already at the time those callbacks are called (to a report server
state of STOPPED as one of the last things each server thread does).

The solution was to store the value of the reported server states in (global)
variables and asynchronously (at "appy time") update the relevant controls
based on the server state(s). Since the LogTimer runs more frequently (2Hz)
than UpTimer (1Hz) and isn't stopped (early) during process termination,
that was the place best-suited to do these control updates.

In this process, I also made the app controls make more sense (e.g. the
"Start" button is disabled during server initialization) and the "Abort"
dialing while waiting for graceful server termination(s) is much improved
(e.g. lists all the servers still running), but now it does not popup for 60
seconds after termination requested (rather than 30 seconds as before) - as
if the user presses "Yes", this initiates an *ungraceful* exit of the program
which could result in crashes (though Microsoft seems to suppress the user
notification of these).
--- SBBSecho 3.34-Linux
 * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
SEEN-BY: 10/0 1 102/401 103/705 105/81 106/201 124/5016 128/187 129/14
SEEN-BY: 153/7715 154/110 214/22 218/0 1 215 700 810 226/30 227/114
SEEN-BY: 229/110 134 206 317 400 426 428 470 700 705 266/512 280/464
SEEN-BY: 291/111 301/1 320/219 322/757 342/200 396/45 460/58 633/280
SEEN-BY: 712/848 902/26 5075/35
PATH: 103/705 218/700 229/426


<< oldest | < older | list | newer > | newest >> ]

(c) 1994,  bbs@darkrealms.ca