#1252 closed defect (fixed)
DIG: random errors at startup regression
Reported by: | SF/logicdeluxe | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | The Dig |
Description
ScummVM 0.5.3cvs (Sep 28 2003 11:05:44) The Dig DOS version under Windows. When starting The Dig there often is only a blank screen. I can ESCape to the shuttle and play, but there also is no sound then. This doesn't always happen, but pretty frequently. Sometimes I get the following error right when I try to start the game and ScummVM shuts down immediately: Looking for dig Trying to start game 'The Dig' Assertion failed: _syst, file common/util.cpp, line 181
abnormal program termination
It doesn't seem to happen with ScummVM 0.5.3cvs (Sep 27 2003 16:36:24) as I couldn't reproduce it with it.
Ticket imported from: #814102. Ticket imported from: bugs/1252.
Change History (3)
comment:1 by , 21 years ago
comment:2 by , 21 years ago
I once saw that race conditojn, too. The problem was probably caused by Jamiesons recent g_timer changes (g_timer uses a mutex, which in turn uses g_system; but g_system was setup to late (i.e. the OSystem object already existed but g_system didn't yet point at it), leading to this potential race condition.
I haven't seen the problem since my fixes (and I have started dig 2-3 dozen times, because I use the dig intro to profile my hq2x changes :-) so I am fairl certain this issue is gone. Alas should you observer it again with a current CVS build, feel free to reopen this.
comment:3 by , 21 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
I tried starting The Dig about 20 times without being able to reproduce it, but of course the "happens sometimes" bugs can be notoriously hard to trigger.
The failed assertion message may be useful, though. Line 181 is in StackLock::lock(), and almost certainly means that something tried to lock a mutex before g_system was set.
One of Fingolfin's recent changes was to "set g_system earlier (might prevent a few race conditions)". Perhaps that fixed the second error, at least?