Beispiel #1
0
        internal int reapAsyncNoCancel(TransferContext transferContext)
        {
            int ret = -1;

            lock (oLockTransferContext)
            {
                if (transferContext.mbAsyncCancelled)
                {
                    return((int)ErrorCodes.ETHREADABORT);
                }
            }
            ret = LibUsbAPI.usb_reap_async_nocancel(transferContext.mContext, transferContext.mTimeout);

            lock (oLockTransferContext)
            {
                if (ret < 0 && ret != (int)ErrorCodes.ETIMEDOUT)
                {
                    transferContext.mbAsyncCancelled = true;
                    UsbGlobals.Error(this, UsbGlobals.LastError, "reapAsyncNoCancel", ret);
                }
                else if (ret >= 0)
                {
                    transferContext.mbAsyncCancelled = true;
                    transferContext.IncrementTransfer(ret);
                }

                return(ret);
            }
        }
Beispiel #2
0
        internal int reapAsync(TransferContext transferContext)
        {
            int ret = -1;

            ret = LibUsbAPI.usb_reap_async(transferContext.mContext, transferContext.mTimeout);
            lock (oLockTransferContext)
                transferContext.mbAsyncCancelled = true;

            if (ret < 0 && ret != (int)ErrorCodes.ETIMEDOUT)
            {
                UsbGlobals.Error(this, UsbGlobals.LastError, "reapAsync", ret);
            }
            else if (ret >= 0)
            {
                lock (oLockTransferContext)
                    transferContext.IncrementTransfer(ret);
            }
            return(ret);
        }