summaryrefslogtreecommitdiff
path: root/src/pipeengine.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-11-24 14:27:23 -0500
committerAdam <Adam@anope.org>2014-11-24 14:27:23 -0500
commit42238034490fb5479d787bd1695750387d508200 (patch)
treec93c62e0e1c936e656ae5b9ee1b62380ce2a194c /src/pipeengine.cpp
parentd492923610d9c9146b2a2b63de38deab2cfd4ca7 (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.cpp7
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);
}