我创建了简单的 dbus 服务,它使用动态分配的数据参数发出信号:
file_name = g_strdup("myfile");
...
...
g_signal_emit_by_name (object, "mysignal", file_name);
g_free(file_name);
在这种情况下,信号监听器可能会收到file_name
已经被销毁的字符串。
file_name
那么在通话后立即释放是否安全,g_signal_emit_by_name
或者我应该等待几秒钟?或者在这种情况下还有其他释放内存的机制吗?