usb-transfer: Use fpi_device_add_timeout instead of g_idle_add
g_idle_add attaches to the default main context, but the rest of libfprint is using the thread local main context. Switch to use the internal fpi_device_add_timeout API for the workaround in order to not rely on the default main context.
This commit is contained in:
parent
d683b271d4
commit
1ca56adff5
1 changed files with 5 additions and 5 deletions
|
@ -354,9 +354,10 @@ transfer_finish_cb (GObject *source_object, GAsyncResult *res, gpointer user_dat
|
||||||
fpi_usb_transfer_unref (transfer);
|
fpi_usb_transfer_unref (transfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static void
|
||||||
transfer_cancel_cb (FpiUsbTransfer *transfer)
|
transfer_cancel_cb (FpDevice *device, gpointer user_data)
|
||||||
{
|
{
|
||||||
|
FpiUsbTransfer *transfer = user_data;
|
||||||
GError *error;
|
GError *error;
|
||||||
FpiUsbTransferCallback callback;
|
FpiUsbTransferCallback callback;
|
||||||
|
|
||||||
|
@ -369,8 +370,6 @@ transfer_cancel_cb (FpiUsbTransfer *transfer)
|
||||||
callback (transfer, transfer->device, transfer->user_data, error);
|
callback (transfer, transfer->device, transfer->user_data, error);
|
||||||
|
|
||||||
fpi_usb_transfer_unref (transfer);
|
fpi_usb_transfer_unref (transfer);
|
||||||
|
|
||||||
return G_SOURCE_REMOVE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -413,7 +412,8 @@ fpi_usb_transfer_submit (FpiUsbTransfer *transfer,
|
||||||
*/
|
*/
|
||||||
if (cancellable && g_cancellable_is_cancelled (cancellable))
|
if (cancellable && g_cancellable_is_cancelled (cancellable))
|
||||||
{
|
{
|
||||||
g_idle_add ((GSourceFunc) transfer_cancel_cb, transfer);
|
fpi_device_add_timeout (transfer->device, 0,
|
||||||
|
transfer_cancel_cb, transfer, NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue