aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/soup_input_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input_stream: non-blocking I/OMax Kellermann2011-09-161-73/+29
| | | | | | | | | Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
* input_plugin: add method check()Max Kellermann2011-09-161-0/+18
| | | | | To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin.
* input/{soup,curl}: free unused postponed_errorMax Kellermann2011-09-161-0/+3
| | | | Fix memory leak.
* input/soup: move libsoup calls to the I/O threadMax Kellermann2011-09-161-4/+25
| | | | | libsoup's asynchronous API is not thread safe. By moving the calls into the I/O thread, several crash bugs will be fixed.
* input/soup: wait for _cancel_message() to completeMax Kellermann2011-09-161-5/+21
| | | | | Add the "complete" attribute, and set it in _session_callback(). _close() waits for it to become true.
* input/soup: return real GErrors to the callerMax Kellermann2011-09-161-3/+31
| | | | | Add attribute postponed_error, pass this GError to the caller.
* input/soup: set the "ready" flag on failureMax Kellermann2011-09-161-0/+2
| | | | Fix deadlock.
* input/soup: remove redundant flag "ready"Max Kellermann2011-09-161-6/+2
| | | | | We'll add proper locking now, and there's no need to carry this duplicate flag.
* input/soup: report failure in _read()Max Kellermann2011-09-161-0/+1
| | | | To report failures to callers who don't use _buffer().
* input/soup: unlock before cancelling the soup messageMax Kellermann2011-09-161-3/+5
| | | | Avoid recursive deadlock in _session_callback().
* input/soup: fix "unused local variable" warningsMax Kellermann2011-09-161-1/+1
|
* input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann2011-09-141-0/+1
|
* input/soup: free all resources in method close()Max Kellermann2011-08-241-0/+10
|
* input/soup: new input plugin based on libsoupMax Kellermann2011-08-241-0/+370
To demonstrate the new I/O thread. libsoup is well-integrated into the GLib main loop, which made this plugin pretty easy to write. As a side effect, we have to initialize the I/O thread in all debug programs that use the input API.