diff options
author | Adam <Adam@anope.org> | 2014-11-24 14:27:23 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2014-11-24 14:27:23 -0500 |
commit | 42238034490fb5479d787bd1695750387d508200 (patch) | |
tree | c93c62e0e1c936e656ae5b9ee1b62380ce2a194c /src/pipeengine.cpp | |
parent | d492923610d9c9146b2a2b63de38deab2cfd4ca7 (diff) |
Rewrite serializable to have field level granularity
Represent serializable objects in a digraph, and as a result made most
object relationships implicitly defined, and use the graph to trace
references between objects to determine relationships. Edges may
also be marked as having a dependency of the object they point to,
which allows for automatic cleanup and deletion of most objects when
no longer needed.
Additionally, this allows not having to require in-memory copies of
everything when using external databases. db_sql has been rewritten
for this and now always requires a database to function. db_sql with
MySQL now requires InnoDB to make use of transactions and foreign
key constraints.
Diffstat (limited to 'src/pipeengine.cpp')
-rw-r--r-- | src/pipeengine.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/pipeengine.cpp b/src/pipeengine.cpp index ee12539da..4b19be48f 100644 --- a/src/pipeengine.cpp +++ b/src/pipeengine.cpp @@ -48,10 +48,11 @@ Pipe::~Pipe() bool Pipe::ProcessRead() { + char dummy[512]; + while (read(this->GetFD(), dummy, sizeof(dummy)) == sizeof(dummy)); + this->OnNotify(); - char dummy[512]; - while (read(this->GetFD(), dummy, 512) == 512); return true; } @@ -76,6 +77,6 @@ bool Pipe::SetWriteBlocking(bool state) void Pipe::Notify() { - this->Write("\0", 1); + this->Write("", 1); } |