/usr/local/lib/swipl/library/ext/swipy/janus.pl
All Application Manual Name SummaryHelp

  • swipy
    • janus.pl -- Call Python from Prolog
      • py_version/0
      • py_call/1
      • py_call/2
      • py_call/3
      • py_iter/2
      • py_iter/3
      • py_setattr/3
      • py_is_object/1
      • py_is_dict/1
      • py_free/1
      • py_with_gil/1
      • py_gil_owner/1
      • py_func/3
      • py_func/4
      • py_dot/3
      • py_dot/4
      • values/3
      • keys/2
      • key/2
      • items/2
      • py_shell/0
      • py_pp/1
      • py_pp/2
      • py_pp/3
      • py_object_dir/2
      • py_object_dict/2
      • py_obj_dir/2
      • py_obj_dict/2
      • py_type/2
      • py_isinstance/2
      • py_module_exists/1
      • py_hasattr/2
      • py_import/2
      • py_module/2
      • py_initialize/3
      • py_lib_dirs/1
      • py_add_lib_dir/1
      • py_add_lib_dir/2
 py_gil_owner(-Thread) is semidet
True when the Python GIL is owned by Thread. Note that, unless Thread is the calling thread, this merely samples the current state and may thus no longer be true when the predicate succeeds. This predicate is intended to help diagnose deadlock problems.

Note that this predicate returns the Prolog threads that locked the GIL. It is however possible that Python releases the GIL, for example if it performs a blocking call. In this scenario, some other thread or no thread may hold the gil.