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