Mercurial > hg > orthanc-python
diff CodeAnalysis/GenerateOrthancSDK.py @ 179:f49864df6f1f java-code-model
trying Py_BEGIN_ALLOW_THREADS
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Jun 2024 21:53:03 +0200 |
parents | e9be3c9294d4 |
children | ddf3e987827f |
line wrap: on
line diff
--- a/CodeAnalysis/GenerateOrthancSDK.py Thu Jun 27 18:51:36 2024 +0200 +++ b/CodeAnalysis/GenerateOrthancSDK.py Thu Jun 27 21:53:03 2024 +0200 @@ -184,6 +184,7 @@ 'count_args' : len(f['args']), } + allow_threads = True tuple_format = '' tuple_target = [] call_args = [] @@ -198,6 +199,7 @@ 'release' : 'PyBuffer_Release(&%s);' % arg['name'], }) tuple_format += 's*' + allow_threads = False elif arg['sdk_type'] == 'const char *': args.append({ 'name' : arg['name'], @@ -205,6 +207,7 @@ 'initialization' : ' = NULL', }) tuple_format += 's' + allow_threads = False elif arg['sdk_type'] == 'enumeration': args.append({ 'name' : arg['name'], @@ -220,6 +223,7 @@ 'check_object_type' : arg['sdk_class'], }) tuple_format += 'O' + allow_threads = False elif arg['sdk_type'] in ORTHANC_TO_PYTHON_NUMERIC_TYPES: t = ORTHANC_TO_PYTHON_NUMERIC_TYPES[arg['sdk_type']] args.append({ @@ -270,11 +274,17 @@ print('Ignoring function with unsupported return type: %s(), type = %s' % (f['c_function'], f['return_sdk_type'])) return None + allow_threads = False # TODO + answer['tuple_format'] = ', '.join([ '"' + tuple_format + '"' ] + tuple_target) + answer['allow_threads'] = allow_threads if len(call_args) > 0: answer['call_args'] = ', ' + ', '.join(call_args) + if not allow_threads: + print('Threads are not allowed in function: %s()' % f['c_function']) + return answer