Many experienced programmers do not understand races
either. For instance
every select() loop has a race condition - between you
being notified and you trying to respond, the data may
have gone. Early versions of Apache suffered from this
problem, one request could tie up several children.
A related bug warning. The examples in the documentation
and in the Perl Cookbook of using flock with DB_File are
not safe. It was discovered last fall that the
first page of the
database is read before you have a chance of locking the
dbm, and in some cases BerkeleyDB will close and reopen the file behind your back.