lgbo-ustc commented on PR #9545: URL: https://github.com/apache/incubator-gluten/pull/9545#issuecomment-2864823434
> > Should L135 be removed? > > ```java > > inRv.close(); > > ``` > > Hi @lgbo-ustc , the close call is still needed. A Java side close call releases Java side reference to that row-vector only. The C++ side reference will still be held by the native blocking queue [here](https://github.com/velox4j/velox4j/blob/1e5cb702b449f7cb5b8817c87fa2487721626a3d/src/main/cpp/main/velox4j/iterator/BlockingQueue.h#L61). Hence, the row-vector will be completely released as soon as it's taken from the native blocking queue and is finished using by the Velox task. I encountered an issue releasing the object here when using the previous version of the blocking queue. The object is still required by C++ side when we release it at line 135, causing an lookup exception in C++ side. The object is still required by the C++ side when released at line 135, causing a lookup exception in the C++ code. Does this new version of the blocking queue ensure objects can be safely released after being enqueued, even if they aren't processed immediately or are still needed by other components? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
