mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 10:38:20 +00:00
Remove timeouts from remote communication loop.
The select() now blocks until there's work to do instead of relying on a small timeout value which can cause unproductive use of cpu cycles.
This commit is contained in:
parent
73cc81f44a
commit
675fba3fde
21 changed files with 364 additions and 58 deletions
45
src/Flare.h
Normal file
45
src/Flare.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
// See the file "COPYING" in the main distribution directory for copyright.
|
||||
|
||||
#ifndef BRO_FLARE_H
|
||||
#define BRO_FLARE_H
|
||||
|
||||
#include "Pipe.h"
|
||||
|
||||
namespace bro {
|
||||
|
||||
class Flare {
|
||||
public:
|
||||
|
||||
/**
|
||||
* Create a flare object that can be used to signal a "ready" status via
|
||||
* a file descriptor that may be integrated with select(), poll(), etc.
|
||||
* Not thread-safe, but that should only require Fire()/Extinguish() calls
|
||||
* to be made mutually exclusive (across all copies of a Flare).
|
||||
*/
|
||||
Flare();
|
||||
|
||||
/**
|
||||
* @return a file descriptor that will become ready if the flare has been
|
||||
* Fire()'d and not yet Extinguished()'d.
|
||||
*/
|
||||
int FD() const
|
||||
{ return pipe.ReadFD(); }
|
||||
|
||||
/**
|
||||
* Put the object in the "ready" state.
|
||||
*/
|
||||
void Fire();
|
||||
|
||||
/**
|
||||
* Take the object out of the "ready" state.
|
||||
*/
|
||||
void Extinguish();
|
||||
|
||||
private:
|
||||
|
||||
Pipe pipe;
|
||||
};
|
||||
|
||||
} // namespace bro
|
||||
|
||||
#endif // BRO_FLARE_H
|
Loading…
Add table
Add a link
Reference in a new issue