mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 15:18:20 +00:00
Support for cleaning up threads that have terminated.
Once a BasicThread leaves its run() method, a thread is now marked for cleaning up, and the ThreadMgr will soon join it to release the OS resources. Also, adding a function Log::remove_stream() that remove a logging stream, stopping all writer threads that are associated with it. Note, however, that removing a *filter* from a stream still doesn't clean up any threads. The problem is that because of the output paths potentially being created dynamically it's unclear if the writer thread will still be needed in the future. We could add clean writers up with timeouts, but that doesn't sound great either. So for now, the only way to sure clean up logging threads is to remove the entire stream. Also note that cleanup doesn't work with input threads yet, which don't seem to terminate (at least in the case I tried).
This commit is contained in:
parent
b4824f4207
commit
38e1dc9ca4
8 changed files with 104 additions and 4 deletions
|
@ -47,6 +47,16 @@ public:
|
|||
*/
|
||||
bool CreateStream(EnumVal* id, RecordVal* stream);
|
||||
|
||||
/**
|
||||
* Remove a log stream, stopping all threads.
|
||||
*
|
||||
* @param id The enum value corresponding the log stream.
|
||||
*
|
||||
* This methods corresponds directly to the internal BiF defined in
|
||||
* logging.bif, which just forwards here.
|
||||
*/
|
||||
bool RemoveStream(EnumVal* id);
|
||||
|
||||
/**
|
||||
* Enables a log log stream.
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue