aboutsummaryrefslogtreecommitdiffstats
path: root/src/event (follow)
Commit message (Collapse)AuthorAgeFilesLines
* util/Error: new error passing libraryMax Kellermann2013-09-045-54/+56
| | | | Replaces GLib's GError.
* system/resolver: convert to C++Max Kellermann2013-09-041-1/+1
|
* EventLoop: initialise the thread id explicitlyMax Kellermann2013-08-101-1/+2
|
* EventLoop: new implementation using epollMax Kellermann2013-08-1013-16/+705
| | | | Implement an event loop without GLib.
* event/Call: signal the calling threadMax Kellermann2013-08-101-0/+5
| | | | Fixes regression from commit 018f4155.
* event/IdleMonitor: new monitor classMax Kellermann2013-08-102-0/+130
|
* event/MultiSocketMonitor: add struct SingleFDMax Kellermann2013-08-102-8/+32
| | | | Prepare for migrating away from GLib.
* event/MultiSocketMonitor: use uint64_t instead of gint64Max Kellermann2013-08-102-5/+6
| | | | Unsigned and portable.
* event/MultiSocketMonitor: eliminate virtual method CheckSockets()Max Kellermann2013-08-102-8/+16
| | | | Handle timeout internally.
* event/MultiSocketMonitor: PrepareSockets() returns timeoutMax Kellermann2013-08-101-2/+5
| | | | Simplify the API, don't use GLib specific integer type.
* thread/Id: new class replacing GThread pointersMax Kellermann2013-08-102-8/+9
| | | | Remove a GLib dependencies from class EventLoop and DatabaseLock.
* event: add function BlockingCall()Max Kellermann2013-08-082-0/+108
| | | | | Replaces io_thread_call(). This approach is more generic and easier to use due to std::function.
* EventLoop: add methodd IsInside()Max Kellermann2013-08-082-2/+26
| | | | | Track which thread runs the EventLoop and provide a check whether we're currently inside.
* EventLoop: un-inline Run() and othersMax Kellermann2013-08-082-22/+61
| | | | Prepare for adding more code.
* event/*Monitor: add method GetEventLoop()Max Kellermann2013-08-084-1/+16
|
* event/SocketMonitor: un-inline Schedule()Max Kellermann2013-08-082-24/+23
| | | | Merge with CommitEventFlags().
* event/SocketMonitor: add assertionsMax Kellermann2013-08-082-0/+12
|
* event/BufferedSocket: add missing includeMax Kellermann2013-08-081-0/+1
|
* event/DeferredMonitor: rename Run() to RunDeferred()Max Kellermann2013-08-072-4/+4
|
* event/DeferredMonitor: use EventLoop::AddIdle()Max Kellermann2013-08-072-3/+7
|
* event/DeferredMonitor: new class wrapping g_idle_add()Max Kellermann2013-08-072-0/+109
|
* event/EventFD: move to libsystemMax Kellermann2013-08-075-361/+2
|
* event/SignalMonitor: use signalfd() if availableMax Kellermann2013-08-071-1/+72
|
* SignalHandlers: move code to new class SignalMonitorMax Kellermann2013-08-072-0/+197
|
* event/Event{Pipe,FD}: auto-create in constructorMax Kellermann2013-08-074-59/+23
| | | | Errors are fatal now. This makes the class a lot easier to use.
* Makefile.am: move sources to libsystem.aMax Kellermann2013-08-077-10/+10
|
* configure.ac: add option --enable-eventfdMax Kellermann2013-08-065-102/+227
| | | | | | Remove the runtime check for eventfd(), hard-code the feature once it's been selected at compile time. The class WakeFD is splitted into EventFD and EventPipe, using WakeFD as a macro diversion.
* event/TimeoutMonitor: eliminate support for periodic eventsMax Kellermann2013-04-082-14/+7
| | | | | No caller needs this. Fixes use-after-free after returning from Client::OnTimeout().
* event/ServerSocket: close only sockets that have been openedMax Kellermann2013-02-041-1/+3
| | | | Fixes assertion failure.
* ServerSocket: Initialize length variableUli Schlachter2013-02-041-1/+1
|
* event/SocketMonitor: wake up the event loop after flag changeMax Kellermann2013-01-302-0/+14
|
* event/Loop: add method WakeUp()Max Kellermann2013-01-301-0/+4
|
* event/ServerSocket: add method GetEventLoop()Max Kellermann2013-01-301-0/+4
|
* ServerSocket: replace callback with virtual methodMax Kellermann2013-01-302-17/+12
|
* ServerSocket: expose the classMax Kellermann2013-01-302-154/+133
| | | | Eliminate the C wrappers.
* ServerSocket: move to libevent.aMax Kellermann2013-01-302-0/+579
|
* event/BufferedSocket: move output buffer to FullyBufferedSocketMax Kellermann2013-01-304-112/+202
| | | | | BufferedSocket has just an input buffer, and FullyBufferedSocket adds the output buffer.
* event/SocketMonitor: OnSocketReady() returns boolMax Kellermann2013-01-303-6/+11
|
* event/SocketMonitor: add methods Read(), Write()Max Kellermann2013-01-304-27/+43
|
* require GLib 2.24Max Kellermann2013-01-291-0/+1
|
* event/SocketMonitor: add method Steal()Max Kellermann2013-01-272-3/+17
|
* event/SocketMonitor: add method Open()Max Kellermann2013-01-152-9/+27
| | | | Allow creating a closed SocketMonitor instance.
* input/Curl: move code to class MultiSocketMonitorMax Kellermann2013-01-152-0/+231
|
* event/SocketMonitor: wrapper class for GSource + GPollFDMax Kellermann2013-01-154-0/+607
|
* event/TimeoutMonitor: wrapper for g_timeout_source_new()Max Kellermann2013-01-143-10/+133
|
* Main, IOThread: move GMainLoop setup code to class EventLoopMax Kellermann2013-01-141-0/+86
|
* WakeFD.cxx: use two sockets instead of pipe on Win32Denis Krjuchkov2013-01-131-4/+127
| | | | | | | | | Pipes aren't really pollable on Windows. GLib emulates polling on pipes using separate reader/writer threads. This adds significant overhead and keeps a strong dependency on GLib. socketpair() function is absent on Windows as well. We implement it here in a loose way.
* event/WakeFD: use eventfd() if availableMax Kellermann2013-01-102-1/+46
|
* GlobalEvents: move code to class WakeFDMax Kellermann2013-01-092-0/+137