Skip to content

Commit cbb4e33

Browse files
Add system property to force detach callback threads after every callback - eg. -Dglib.detachCallbackThreads=true
1 parent 75c846e commit cbb4e33

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/org/freedesktop/gstreamer/Bus.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public class Bus extends GstObject {
8383
public static final String GTYPE_NAME = "GstBus";
8484

8585
private static final Logger LOG = Logger.getLogger(Bus.class.getName());
86-
86+
8787
private final Object lock = new Object();
8888
private Map<Class<?>, Map<Object, MessageProxy>> signalListeners;
8989
private List<MessageProxy> messageProxies = new CopyOnWriteArrayList<MessageProxy>();
@@ -715,12 +715,14 @@ public BusSyncHandler getSyncHandler() {
715715
public void setSyncHandler(BusSyncHandler handler) {
716716
syncHandler = handler;
717717
}
718-
private static org.freedesktop.gstreamer.lowlevel.GstBusAPI.BusSyncHandler syncCallback = new GstBusAPI.BusSyncHandler() {
719-
718+
719+
private static final org.freedesktop.gstreamer.lowlevel.GstBusAPI.BusSyncHandler syncCallback = new GstBusAPI.BusSyncHandler() {
720+
720721
{
721722
Native.setCallbackThreadInitializer(this,
722-
new CallbackThreadInitializer(true, false, "GstBus"));
723-
723+
new CallbackThreadInitializer(true,
724+
Boolean.getBoolean("glib.detachCallbackThreads"),
725+
"GstBus"));
724726
}
725727

726728
public BusSyncReply callback(final Bus bus, final Message msg, Pointer userData) {

src/org/freedesktop/gstreamer/glib/GObject.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ public abstract class GObject extends RefCountedObject {
7070
private static final Level LIFECYCLE = Level.FINE;
7171
private static final Logger LOG = Logger.getLogger(GObject.class.getName());
7272
private static final CallbackThreadInitializer GCALLBACK_THREAD_INIT
73-
= new CallbackThreadInitializer(true, false, "GCallback");
73+
= new CallbackThreadInitializer(true,
74+
Boolean.getBoolean("glib.detachCallbackThreads"),
75+
"GCallback");
7476
private static final Map<GObject, Boolean> STRONG_REFS
7577
= new ConcurrentHashMap<GObject, Boolean>();
7678
private static final GObjectAPI.GToggleNotify TOGGLE_NOTIFY = new ToggleNotify();

0 commit comments

Comments
 (0)