summaryrefslogtreecommitdiff
path: root/include/cull_list.h
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-21 13:26:31 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-21 13:26:31 +0000
commite2af2347fc035d702e45f12e772223a8d578410d (patch)
treebfd80aac2858a9f4faedc316794fc1051dbaa72c /include/cull_list.h
parent16fc672b685752007e47aed0fb97bc1ee7443c76 (diff)
Create StreamSocket for IO hooking implementation
Fixes the SSL SendQ bug Removes duplicate code between User and BufferedSocket Simplify SSL module API Simplify EventHandler API (Readable/Writeable moved to SE) Add hook for culled objects to invoke callbacks prior to destructor Replace SocketCull with GlobalCull now that sockets can close themselves Shorten common case of user read/parse/write path: User::Write is now zero-copy up to syscall/SSL invocation User::Read has only two copy/scan passes from read() to ProcessCommand git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11752 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/cull_list.h')
-rw-r--r--include/cull_list.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/include/cull_list.h b/include/cull_list.h
index 8c3827642..bd2fb45da 100644
--- a/include/cull_list.h
+++ b/include/cull_list.h
@@ -19,17 +19,14 @@
* avoid problems with references to deleted pointers if an object were deleted
* during execution.
*/
-class CoreExport CullList : public classbase
+class CoreExport CullList
{
- private:
- std::vector<classbase*> list;
+ std::set<classbase*> list;
public:
- CullList() {}
-
/** Adds an item to the cull list
*/
- void AddItem(classbase* item) { list.push_back(item); }
+ void AddItem(classbase* item) { list.insert(item); }
/** Applies the cull list (deletes the contents)
*/