I read the documentation of Service Maker for Python and found one not clarified topic related to BufferOperator (here is link for ref)
Will BufferOperator instance acquire GIL?
If yes - does it mean that several instances of BufferOperator will block each other (by trying to acquire GIL)?
If not - How BufferOperator do this?
Here we have generate() function, which will acquire GIL.
So if we create several instances of MyBufferProvider, calls of their generate() functions will acquire the same GIL, so only one MyBufferProvider can work at the same time.
I don’t know pyservicemaker source code, but I doubt it releases GIL before generate() function calls.
For example, I will have several streams that should be processed by one trtengine.
Or if I will have BufferOperator and BufferRetriever in the pipeline for postprocessing and exporting data.
These streams will be handled in batch by service maker. Please refer to /opt/nvidia/deepstream/deepstream/service-maker/sources/apps/python/pipeline_app/deepstream_test3_app
BufferProvider and BufferRetriever are used with appsink and appsrc. Please refer to /opt/nvidia/deepstream/deepstream/service-maker/sources/apps/python/pipeline_api/deepstream_appsrc_test_app
There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks