mirror of https://github.com/aria2/aria2
Document that libaria2 is not thread safe
parent
e12693c027
commit
9d58ad912a
|
@ -54,12 +54,14 @@ And create aria2 session object::
|
|||
:type:`Session` ``session`` is an aria2 session object. You need this
|
||||
object through out the download process. Please keep in mind that only
|
||||
one :type:`Session` object can be allowed per process due to the heavy
|
||||
use of static objects in aria2 code base. :type:`SessionConfig`
|
||||
``config`` holds configuration for the session object. The constructor
|
||||
initializes it with the default values. In this setup,
|
||||
:member:`SessionConfig::keepRunning` is ``false`` which means
|
||||
:func:`run()` returns when all downloads are processed, just like
|
||||
aria2c utility without RPC enabled. And
|
||||
use of static objects in aria2 code base. :type:`Session` object is
|
||||
not safe for concurrent accesses from multiple threads. It must be
|
||||
used from one thread at a time. In general, libaria2 is not entirely
|
||||
thread-safe. :type:`SessionConfig` ``config`` holds configuration for
|
||||
the session object. The constructor initializes it with the default
|
||||
values. In this setup, :member:`SessionConfig::keepRunning` is
|
||||
``false`` which means :func:`run()` returns when all downloads are
|
||||
processed, just like aria2c utility without RPC enabled. And
|
||||
:member:`SessionConfig::useSignalHandler` is ``true``, which means
|
||||
libaria2 will setup signal handlers and catches certain signals to
|
||||
halt download process gracefully. We also setup event handler callback
|
||||
|
|
Loading…
Reference in New Issue