瀏覽代碼

Document that libaria2 is not thread safe

Tatsuhiro Tsujikawa 9 年之前
父節點
當前提交
9d58ad912a
共有 1 個文件被更改,包括 8 次插入6 次删除
  1. 8 6
      doc/manual-src/en/libaria2.rst

+ 8 - 6
doc/manual-src/en/libaria2.rst

@@ -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