9c9a810c41
hrev53379 clears the buffer cache for disconnected clients, and also delete buffers. This is too early (see #15263, media_addon_server crash), and should only happen after the buffer is recycled. This can be resolved by abusing the fFlags field of BBuffer to mark the buffer for deletion, and mark the buffer to be reclaimed. Some BBuffers don't reside in the SharedBufferList, so we have to mark them as to be reclaimed. For those in the SharedBufferList, call a new RemoveBuffer(), which can check whether the buffer is still to be reclaimed. For reclaimed BBuffers, delete them right away, others can be marked for deletion. fixes #15606 #15263, possibly #15433 Change-Id: I66e94138e7e10a40d4c48e2ac042f816c79f5aab Reviewed-on: https://review.haiku-os.org/c/haiku/+/2245 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: X512 <danger_mail@list.ru> Reviewed-by: Ryan Leavengood <leavengood@gmail.com> |
||
---|---|---|
.. | ||
experimental | ||
DataExchange.h | ||
DecoderPlugin.h | ||
DefaultMediaTheme.h | ||
DormantNodeManager.h | ||
EncoderPlugin.h | ||
MediaDebug.h | ||
MediaExtractor.h | ||
MediaMisc.h | ||
MediaPlugin.h | ||
MediaRosterEx.h | ||
MediaSounds.h | ||
MediaStreamer.h | ||
MediaWriter.h | ||
MetaFormat.h | ||
Notifications.h | ||
PluginManager.h | ||
RawFormats.h | ||
ReaderPlugin.h | ||
ServerInterface.h | ||
SharedBufferList.h | ||
StreamerPlugin.h | ||
TList.h | ||
TMap.h | ||
TStack.h | ||
WriterPlugin.h |