• Max Kellermann's avatar
    DeferredMonitor: fix race condition when using GLib event loop · 0efb67b5
    Max Kellermann authored
    Turns out the lock-free code using atomics was not thread-safe.  The
    given callback could be invoked by GLib before the source_id attribute
    was assigned.  This commit changes the DeferredMonitor class to use a
    Mutex to block the event loop until source_id is assigned.  This bug
    does not exist in the 0.19 branch because it does not use the GLib
    main loop anymore.
    0efb67b5
Name
Last commit
Last update
..
AudioCompress Loading commit data...
archive Loading commit data...
command Loading commit data...
cue Loading commit data...
db Loading commit data...
decoder Loading commit data...
encoder Loading commit data...
event Loading commit data...
filter Loading commit data...
fs Loading commit data...
input Loading commit data...
mixer Loading commit data...
output Loading commit data...
pcm Loading commit data...
playlist Loading commit data...
protocol Loading commit data...
system Loading commit data...
tag Loading commit data...
thread Loading commit data...
util Loading commit data...
win Loading commit data...
ArchiveDomain.cxx Loading commit data...
ArchiveDomain.hxx Loading commit data...
ArchiveFile.hxx Loading commit data...
ArchiveList.cxx Loading commit data...
ArchiveList.hxx Loading commit data...
ArchiveLookup.cxx Loading commit data...
ArchiveLookup.hxx Loading commit data...
ArchivePlugin.cxx Loading commit data...
ArchivePlugin.hxx Loading commit data...
ArchiveVisitor.hxx Loading commit data...
AudioConfig.cxx Loading commit data...
AudioConfig.hxx Loading commit data...
AudioFormat.cxx Loading commit data...
AudioFormat.hxx Loading commit data...
AudioParser.cxx Loading commit data...
AudioParser.hxx Loading commit data...
AvahiPoll.cxx Loading commit data...
AvahiPoll.hxx Loading commit data...
CheckAudioFormat.cxx Loading commit data...
CheckAudioFormat.hxx Loading commit data...
Client.cxx Loading commit data...
Client.hxx Loading commit data...
ClientEvent.cxx Loading commit data...
ClientExpire.cxx Loading commit data...
ClientFile.cxx Loading commit data...
ClientFile.hxx Loading commit data...
ClientGlobal.cxx Loading commit data...
ClientIdle.cxx Loading commit data...
ClientInternal.hxx Loading commit data...
ClientList.cxx Loading commit data...
ClientList.hxx Loading commit data...
ClientMessage.cxx Loading commit data...
ClientMessage.hxx Loading commit data...
ClientNew.cxx Loading commit data...
ClientProcess.cxx Loading commit data...
ClientRead.cxx Loading commit data...
ClientSubscribe.cxx Loading commit data...
ClientWrite.cxx Loading commit data...
CommandLine.cxx Loading commit data...
CommandLine.hxx Loading commit data...
Compiler.h Loading commit data...
ConfigData.cxx Loading commit data...
ConfigData.hxx Loading commit data...
ConfigDefaults.hxx Loading commit data...
ConfigError.cxx Loading commit data...
ConfigError.hxx Loading commit data...
ConfigFile.cxx Loading commit data...
ConfigFile.hxx Loading commit data...
ConfigGlobal.cxx Loading commit data...
ConfigGlobal.hxx Loading commit data...
ConfigOption.hxx Loading commit data...
ConfigParser.cxx Loading commit data...
ConfigParser.hxx Loading commit data...
ConfigPath.cxx Loading commit data...
ConfigPath.hxx Loading commit data...
ConfigTemplates.cxx Loading commit data...
ConfigTemplates.hxx Loading commit data...
CrossFade.cxx Loading commit data...
CrossFade.hxx Loading commit data...
Daemon.cxx Loading commit data...
Daemon.hxx Loading commit data...
DatabaseError.cxx Loading commit data...
DatabaseError.hxx Loading commit data...
DatabaseGlue.cxx Loading commit data...
DatabaseGlue.hxx Loading commit data...
DatabaseHelpers.cxx Loading commit data...
DatabaseHelpers.hxx Loading commit data...
DatabaseLock.cxx Loading commit data...
DatabaseLock.hxx Loading commit data...
DatabasePlaylist.cxx Loading commit data...
DatabasePlaylist.hxx Loading commit data...
DatabasePlugin.hxx Loading commit data...
DatabasePrint.cxx Loading commit data...
DatabasePrint.hxx Loading commit data...
DatabaseQueue.cxx Loading commit data...
DatabaseQueue.hxx Loading commit data...
DatabaseRegistry.cxx Loading commit data...
DatabaseRegistry.hxx Loading commit data...
DatabaseSave.cxx Loading commit data...
DatabaseSave.hxx Loading commit data...
DatabaseSelection.cxx Loading commit data...
DatabaseSelection.hxx Loading commit data...
DatabaseSimple.hxx Loading commit data...
DatabaseVisitor.hxx Loading commit data...
DecoderAPI.cxx Loading commit data...
DecoderAPI.hxx Loading commit data...
DecoderBuffer.cxx Loading commit data...
DecoderBuffer.hxx Loading commit data...
DecoderCommand.hxx Loading commit data...
DecoderControl.cxx Loading commit data...
DecoderControl.hxx Loading commit data...
DecoderError.cxx Loading commit data...
DecoderError.hxx Loading commit data...
DecoderInternal.cxx Loading commit data...
DecoderInternal.hxx Loading commit data...
DecoderList.cxx Loading commit data...
DecoderList.hxx Loading commit data...
DecoderPlugin.cxx Loading commit data...
DecoderPlugin.hxx Loading commit data...
DecoderPrint.cxx Loading commit data...
DecoderPrint.hxx Loading commit data...
DecoderThread.cxx Loading commit data...
DecoderThread.hxx Loading commit data...
DespotifyUtils.cxx Loading commit data...
DespotifyUtils.hxx Loading commit data...
Directory.cxx Loading commit data...
Directory.hxx Loading commit data...
DirectorySave.cxx Loading commit data...
DirectorySave.hxx Loading commit data...
EncoderAPI.hxx Loading commit data...
EncoderList.cxx Loading commit data...
EncoderList.hxx Loading commit data...
EncoderPlugin.hxx Loading commit data...
ExcludeList.cxx Loading commit data...
ExcludeList.hxx Loading commit data...
FilterConfig.cxx Loading commit data...
FilterConfig.hxx Loading commit data...
FilterInternal.hxx Loading commit data...
FilterPlugin.cxx Loading commit data...
FilterPlugin.hxx Loading commit data...
FilterRegistry.cxx Loading commit data...
FilterRegistry.hxx Loading commit data...
GlobalEvents.cxx Loading commit data...
GlobalEvents.hxx Loading commit data...
IOThread.cxx Loading commit data...
IOThread.hxx Loading commit data...
IcyMetaDataParser.cxx Loading commit data...
IcyMetaDataParser.hxx Loading commit data...
IcyMetaDataServer.cxx Loading commit data...
IcyMetaDataServer.hxx Loading commit data...
IdTable.hxx Loading commit data...
Idle.cxx Loading commit data...
Idle.hxx Loading commit data...
InotifyDomain.cxx Loading commit data...
InotifyDomain.hxx Loading commit data...
InotifyQueue.cxx Loading commit data...
InotifyQueue.hxx Loading commit data...
InotifySource.cxx Loading commit data...
InotifySource.hxx Loading commit data...
InotifyUpdate.cxx Loading commit data...
InotifyUpdate.hxx Loading commit data...
InputInit.cxx Loading commit data...
InputInit.hxx Loading commit data...
InputPlugin.hxx Loading commit data...
InputRegistry.cxx Loading commit data...
InputRegistry.hxx Loading commit data...
InputStream.cxx Loading commit data...
InputStream.hxx Loading commit data...
Instance.cxx Loading commit data...
Instance.hxx Loading commit data...
Listen.cxx Loading commit data...
Listen.hxx Loading commit data...
Log.cxx Loading commit data...
Log.hxx Loading commit data...
LogInit.cxx Loading commit data...
LogInit.hxx Loading commit data...
LogV.hxx Loading commit data...
Main.cxx Loading commit data...
Main.hxx Loading commit data...
Mapper.cxx Loading commit data...
Mapper.hxx Loading commit data...
MemorySongEnumerator.cxx Loading commit data...
MemorySongEnumerator.hxx Loading commit data...
MixRampInfo.hxx Loading commit data...
MixerAll.cxx Loading commit data...
MixerAll.hxx Loading commit data...
MixerControl.cxx Loading commit data...
MixerControl.hxx Loading commit data...
MixerInternal.hxx Loading commit data...
MixerList.hxx Loading commit data...
MixerPlugin.hxx Loading commit data...
MixerType.cxx Loading commit data...
MixerType.hxx Loading commit data...
MusicBuffer.cxx Loading commit data...
MusicBuffer.hxx Loading commit data...
MusicChunk.cxx Loading commit data...
MusicChunk.hxx Loading commit data...
MusicPipe.cxx Loading commit data...
MusicPipe.hxx Loading commit data...
OutputAPI.hxx Loading commit data...
OutputAll.cxx Loading commit data...
OutputAll.hxx Loading commit data...
OutputCommand.cxx Loading commit data...
OutputCommand.hxx Loading commit data...
OutputControl.cxx Loading commit data...
OutputControl.hxx Loading commit data...
OutputError.cxx Loading commit data...
OutputError.hxx Loading commit data...
OutputFinish.cxx Loading commit data...
OutputInit.cxx Loading commit data...
OutputInternal.hxx Loading commit data...
OutputList.cxx Loading commit data...
OutputList.hxx Loading commit data...
OutputPlugin.cxx Loading commit data...
OutputPlugin.hxx Loading commit data...
OutputPrint.cxx Loading commit data...
OutputPrint.hxx Loading commit data...
OutputState.cxx Loading commit data...
OutputState.hxx Loading commit data...
OutputThread.cxx Loading commit data...
OutputThread.hxx Loading commit data...
Page.cxx Loading commit data...
Page.hxx Loading commit data...
Partition.cxx Loading commit data...
Partition.hxx Loading commit data...
Permission.cxx Loading commit data...
Permission.hxx Loading commit data...
PlayerControl.cxx Loading commit data...
PlayerControl.hxx Loading commit data...
PlayerThread.cxx Loading commit data...
PlayerThread.hxx Loading commit data...
Playlist.cxx Loading commit data...
Playlist.hxx Loading commit data...
PlaylistAny.cxx Loading commit data...
PlaylistAny.hxx Loading commit data...
PlaylistControl.cxx Loading commit data...
PlaylistDatabase.cxx Loading commit data...
PlaylistDatabase.hxx Loading commit data...
PlaylistEdit.cxx Loading commit data...
PlaylistError.cxx Loading commit data...
PlaylistError.hxx Loading commit data...
PlaylistFile.cxx Loading commit data...
PlaylistFile.hxx Loading commit data...
PlaylistGlobal.cxx Loading commit data...
PlaylistGlobal.hxx Loading commit data...
PlaylistInfo.hxx Loading commit data...
PlaylistMapper.cxx Loading commit data...
PlaylistMapper.hxx Loading commit data...
PlaylistPlugin.hxx Loading commit data...
PlaylistPrint.cxx Loading commit data...
PlaylistPrint.hxx Loading commit data...
PlaylistQueue.cxx Loading commit data...
PlaylistQueue.hxx Loading commit data...
PlaylistRegistry.cxx Loading commit data...
PlaylistRegistry.hxx Loading commit data...
PlaylistSave.cxx Loading commit data...
PlaylistSave.hxx Loading commit data...
PlaylistSong.cxx Loading commit data...
PlaylistSong.hxx Loading commit data...
PlaylistState.cxx Loading commit data...
PlaylistState.hxx Loading commit data...
PlaylistUpdate.cxx Loading commit data...
PlaylistVector.cxx Loading commit data...
PlaylistVector.hxx Loading commit data...
Queue.cxx Loading commit data...
Queue.hxx Loading commit data...
QueuePrint.cxx Loading commit data...
QueuePrint.hxx Loading commit data...
QueueSave.cxx Loading commit data...
QueueSave.hxx Loading commit data...
ReplayGainConfig.cxx Loading commit data...
ReplayGainConfig.hxx Loading commit data...
ReplayGainInfo.cxx Loading commit data...
ReplayGainInfo.hxx Loading commit data...
SignalHandlers.cxx Loading commit data...
SignalHandlers.hxx Loading commit data...
Song.cxx Loading commit data...
Song.hxx Loading commit data...
SongEnumerator.hxx Loading commit data...
SongFilter.cxx Loading commit data...
SongFilter.hxx Loading commit data...
SongPointer.hxx Loading commit data...
SongPrint.cxx Loading commit data...
SongPrint.hxx Loading commit data...
SongSave.cxx Loading commit data...
SongSave.hxx Loading commit data...
SongSort.cxx Loading commit data...
SongSort.hxx Loading commit data...
SongSticker.cxx Loading commit data...
SongSticker.hxx Loading commit data...
SongUpdate.cxx Loading commit data...
StateFile.cxx Loading commit data...
StateFile.hxx Loading commit data...
Stats.cxx Loading commit data...
Stats.hxx Loading commit data...
StickerDatabase.cxx Loading commit data...
StickerDatabase.hxx Loading commit data...
StickerPrint.cxx Loading commit data...
StickerPrint.hxx Loading commit data...
TagFile.cxx Loading commit data...
TagFile.hxx Loading commit data...
TagPrint.cxx Loading commit data...
TagPrint.hxx Loading commit data...
TagSave.cxx Loading commit data...
TagSave.hxx Loading commit data...
TextFile.cxx Loading commit data...
TextFile.hxx Loading commit data...
TextInputStream.cxx Loading commit data...
TextInputStream.hxx Loading commit data...
TimePrint.cxx Loading commit data...
TimePrint.hxx Loading commit data...
Timer.cxx Loading commit data...
Timer.hxx Loading commit data...
UpdateArchive.cxx Loading commit data...
UpdateArchive.hxx Loading commit data...
UpdateContainer.cxx Loading commit data...
UpdateContainer.hxx Loading commit data...
UpdateDatabase.cxx Loading commit data...
UpdateDatabase.hxx Loading commit data...
UpdateDomain.cxx Loading commit data...
UpdateDomain.hxx Loading commit data...
UpdateGlue.cxx Loading commit data...
UpdateGlue.hxx Loading commit data...
UpdateIO.cxx Loading commit data...
UpdateIO.hxx Loading commit data...
UpdateInternal.hxx Loading commit data...
UpdateQueue.cxx Loading commit data...
UpdateQueue.hxx Loading commit data...
UpdateRemove.cxx Loading commit data...
UpdateRemove.hxx Loading commit data...
UpdateSong.cxx Loading commit data...
UpdateSong.hxx Loading commit data...
UpdateWalk.cxx Loading commit data...
UpdateWalk.hxx Loading commit data...
Volume.cxx Loading commit data...
Volume.hxx Loading commit data...
Win32Main.cxx Loading commit data...
ZeroconfAvahi.cxx Loading commit data...
ZeroconfAvahi.hxx Loading commit data...
ZeroconfBonjour.cxx Loading commit data...
ZeroconfBonjour.hxx Loading commit data...
ZeroconfGlue.cxx Loading commit data...
ZeroconfGlue.hxx Loading commit data...
ZeroconfInternal.hxx Loading commit data...
check.h Loading commit data...
gerror.h Loading commit data...
ls.cxx Loading commit data...
ls.hxx Loading commit data...
notify.cxx Loading commit data...
notify.hxx Loading commit data...
open.h Loading commit data...
poison.h Loading commit data...