If Operation.SetConfig() is called on already active readline instance (that e.g. read some lines), this may lead to data race between updating Operation.history in ioloop() and resetting history in SetConfig(), as access to Operation.history is not protected by any mutex.
Example trace from gotsan detecting such race condition:
If
Operation.SetConfig()
is called on already active readline instance (that e.g. read some lines), this may lead to data race between updatingOperation.history
inioloop()
and resetting history inSetConfig()
, as access toOperation.history
is not protected by any mutex.Example trace from
gotsan
detecting such race condition: