When EDataBook/EDataCal was unreffed in the main thread then
any later calls to the factory were blocked by the backend
till it freed its resources, possibly making client look like
frozen/unresponsive.
OperationData *op;
op = op_new (OP_CLOSE, book);
+ /* unref here makes sure the book is freed in a separate thread */
+ g_object_unref (book);
e_gdbus_book_complete_close (book->priv->gdbus_object, invocation, NULL);
e_operation_pool_push (ops_pool, op);
- g_object_unref (book);
-
return TRUE;
}
OperationData *op;
op = op_new (OP_CLOSE, cal);
+ /* unref here makes sure the cal is freed in a separate thread */
+ g_object_unref (cal);
e_gdbus_cal_complete_close (cal->priv->gdbus_object, invocation, NULL);
e_operation_pool_push (ops_pool, op);
- g_object_unref (cal);
-
return TRUE;
}