aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Revert "ClientList.cxx: copy client list before iterating"Max Kellermann2013-01-141-2/+1
| | | | | This reverts commit f53dadcc6d0a29ce7419a07a51762b4b44654696, to prepare for a better solution.
* event/TimeoutMonitor: wrapper for g_timeout_source_new()Max Kellermann2013-01-148-60/+152
|
* StateFile: convert to a classMax Kellermann2013-01-143-75/+80
|
* gcc.h: add C++11 "final" fallback macroMax Kellermann2013-01-141-0/+1
|
* InotifyQueue: convert to a classMax Kellermann2013-01-143-41/+45
|
* InotifySource: convert to a classMax Kellermann2013-01-143-98/+96
|
* Main, IOThread: move GMainLoop setup code to class EventLoopMax Kellermann2013-01-1411-76/+131
|
* IOThread: use gcc.hMax Kellermann2013-01-141-4/+6
|
* ClientList.cxx: copy client list before iteratingDenis Krjuchkov2013-01-131-1/+2
| | | | | | | | It seems that it is not safe to remove the item from std::list while it's being iterated somewhere else. This is a very simple quick fix to make things work until some better solution is implemented.
* WakeFD.cxx: use two sockets instead of pipe on Win32Denis Krjuchkov2013-01-132-5/+128
| | | | | | | | | 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.
* Win32Main.cxx: more clean shutdownDenis Krjuchkov2013-01-131-5/+22
| | | | | | | | | | This change fixes two issues: 1) console_handler is called from a separate thread. Thread-safe primitive is required for correct operation. 2) If console_handler returns TRUE our process is immediately terminated. We use Sleep() to give main thread an opportunity to shutdown correctly.
* thread/{Mutex,Cond}: new backend for WIN32Max Kellermann2013-01-114-4/+135
| | | | | | Use CRITICAL_SECTION and CONDITION_VARIABLE. This requires Windows Vista or newer. It fixes problems with GLib threading objects that were implicitly created by static constructors before g_thread_init().
* GlobalEvents: #undef DELETE on WindowsMax Kellermann2013-01-111-0/+8
| | | | Work around a build failure due to windows.h macro.
* configure.ac: enable WIN32_LEAN_AND_MEAN on WindowsMax Kellermann2013-01-113-1/+3
|
* string_util.c: provide fallback strndup() implementationDenis Krjuchkov2013-01-113-0/+48
| | | | | This patch also adds extern "C" { } wrapper around string_util.h to allow its usage in C++ code
* input/curl: use std::list instead of GQueueMax Kellermann2013-01-101-93/+80
|
* icy_metadata: convert to C++Max Kellermann2013-01-104-163/+136
|
* input/Curl: add constructor to input_curl classMax Kellermann2013-01-101-32/+30
|
* input/Curl: remove unused source/source_id attributesMax Kellermann2013-01-101-7/+0
|
* input/Curl: remove redundant attribute "url"Max Kellermann2013-01-101-4/+2
| | | | Use the "url" attribute from the base class instead.
* input/Curl: use std::forward_list instead of GSListMax Kellermann2013-01-101-27/+21
|
* input/Curl: remove unused attribute "fds"Max Kellermann2013-01-101-3/+1
|
* input/Curl: require libcurl 7.18Max Kellermann2013-01-101-24/+4
|
* output/shout: refactor check_block_param() to a functionMax Kellermann2013-01-101-18/+15
| | | | Don't use macro magic, don't dereference the block_param.
* Log, ...: include cleanupMax Kellermann2013-01-103-3/+0
|
* decoder/wavpack: convert to C++Max Kellermann2013-01-104-36/+58
|
* decoder/wavpack: include cleanupMax Kellermann2013-01-101-3/+0
|
* conf: convert to C++Max Kellermann2013-01-101-63/+73
|
* path: move code to IsSupportedCharset()Max Kellermann2013-01-101-6/+15
|
* path: make the "win_charset" buffer staticMax Kellermann2013-01-101-1/+1
| | | | It is illegal to use it after going out of scope.
* notify: convert to C++Max Kellermann2013-01-106-99/+79
|
* io_thread: convert to C++Max Kellermann2013-01-105-30/+27
|
* input/{curl,soup}: convert to C++Max Kellermann2013-01-105-67/+86
|
* input_stream: convert to C++ (internally)Max Kellermann2013-01-107-19/+18
|
* PlayerControl: switch to the Mutex/Cond classesMax Kellermann2013-01-103-13/+10
|
* thread/Cond: new wrapper for pthread_cond_t or GCondMax Kellermann2013-01-105-0/+189
|
* thread/GLibMutex: new Mutex implementationMax Kellermann2013-01-102-19/+44
| | | | | Switch WIN32 to this implementation to be able to use condition variables, which is impossible with CriticalSection.
* PlayerThread: use pc.cond instead of main_condMax Kellermann2013-01-104-8/+2
| | | | | The main_cond variable was completely unnecessary. The pc.cond object can be used for both main->pc and pc->main.
* DecoderControl: take ownership of client_condMax Kellermann2013-01-104-7/+8
| | | | | Don't let the "client" pass its own GCond. This was not used consistently.
* DecoderThread: signal the client after decoder finishesMax Kellermann2013-01-101-0/+2
| | | | Fixes potential dead lock bug.
* thread/PosixMutex: fix indentMax Kellermann2013-01-101-13/+13
|
* GlobalEvents: lock-less operation using std::atomicMax Kellermann2013-01-103-39/+9
| | | | Use a bit field instead of a mutex-protected bool array.
* event/WakeFD: use eventfd() if availableMax Kellermann2013-01-102-1/+46
|
* fd_util: support eventfd()Max Kellermann2013-01-102-0/+25
|
* GlobalEvents: move code to class WakeFDMax Kellermann2013-01-093-27/+148
|
* EventPipe: rename to GlobalEventsMax Kellermann2013-01-0916-268/+261
|
* EventPipe: use Mutex instead of GMutexMax Kellermann2013-01-091-10/+7
|
* event_pipe.h: convert to C++Max Kellermann2013-01-0913-40/+14
|
* sig_handlers, log: convert to C++Max Kellermann2013-01-096-17/+13
|
* mixer/{alsa,pulse}: convert to C++Max Kellermann2013-01-096-29/+57
|