#1252 closed defect (fixed)
DIG: random errors at startup regression
Reported by: | SF/logicdeluxe | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
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 , 16 years ago
comment:2 by , 16 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 , 16 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?