Best error message ever! "Butler drops pool trash"

I’ve seen a lot of error messages in my day… but “butler drops pool trash” takes first prize. bravo!

Is there a story behind that?


It is not an error message, just a debug message. It is a bit technical, but here is an overview:

“the butler” is a background thread: It is a low priority process that performs house-keeping tasks. Notably disk-i/o is performed by the butler: It reads audio data from disk and makes it available for later realtime-processing.

It is aptly named. The butler makes sure that audio-process threads get the audio-data they ordered, and don’t starve :slight_smile:

To safely communicate with realtime-processing, memory pools are used. Since memory allocation is not realtime-safe, those pools are pre-allocated chunks of memory per process thread.

Now at the end, when closing a session (and before loading another one) those pre-allocated buffers need to be cleared.

At that point in time the memory-pools contain instructions for the butler to perform that are no longer relevant, and hence can be dropped in the trash can.

hence “butler drops pool trash”.

PS. In reality it is a bit more complex. The butler also manages memory-pools for other cross-thread communications. Due to the asynchronous nature of parallel processing, those may not be empty and cannot be deleted out right, but first have to be kept in a trash-can before they can be deleted. This motivated that debug message.


Hi Robin,

Fantastic reply! Thanks!

1 Like