示例#1
0
void
net·runtime_pollWaitCanceled(PollDesc* pd, intgo mode)
{
#line 157 "/home/14/ren/source/golang/go/src/pkg/runtime/netpoll.goc"

    // This function is used only on windows after a failed attempt to cancel
    // a pending async IO operation. Wait for ioready, ignore closing or timeouts.
    while(!netpollblock(pd, mode, true))
        ;
}
void
net·runtime_pollWaitCanceled(PollDesc* pd, intgo mode)
{
#line 157 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\netpoll.goc"

	// This function is used only on windows after a failed attempt to cancel
	// a pending async IO operation. Wait for ioready, ignore closing or timeouts.
	while(!netpollblock(pd, mode, true))
		;
}
示例#3
0
void
net·runtime_pollWaitCanceled(PollDesc* pd, intgo mode)
{
#line 128 "/tmp/makerelease886106415/go/src/pkg/runtime/netpoll.goc"

	runtime·lock(pd);
	// wait for ioready, ignore closing or timeouts.
	while(!netpollblock(pd, mode))
		;
	runtime·unlock(pd);
}
示例#4
0
void
net·runtime_pollWait(PollDesc* pd, intgo mode, intgo err)
{
#line 112 "/tmp/bindist907131767/go/src/pkg/runtime/netpoll.goc"

	runtime·lock(pd);
	err = checkerr(pd, mode);
	if(err)
		goto ret;
	netpollblock(pd, mode);
	err = checkerr(pd, mode);
ret:
	runtime·unlock(pd);
	FLUSH(&err);
}
示例#5
0
void
net·runtime_pollWait(PollDesc* pd, intgo mode, intgo err)
{
#line 112 "/tmp/makerelease886106415/go/src/pkg/runtime/netpoll.goc"

	runtime·lock(pd);
	err = checkerr(pd, mode);
	if(err == 0) {
		while(!netpollblock(pd, mode)) {
			err = checkerr(pd, mode);
			if(err != 0)
				break;
			// Can happen if timeout has fired and unblocked us,
			// but before we had a chance to run, timeout has been reset.
			// Pretend it has not happened and retry.
		}
	}
	runtime·unlock(pd);
	FLUSH(&err);
}
void
net·runtime_pollWait(PollDesc* pd, intgo mode, intgo err)
{
	err = 0;
	FLUSH(&err);
#line 140 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\netpoll.goc"

	err = checkerr(pd, mode);
	if(err == 0) {
		// As for now only Solaris uses level-triggered IO.
		if(Solaris)
			runtime·netpollarm(pd, mode);
		while(!netpollblock(pd, mode, false)) {
			err = checkerr(pd, mode);
			if(err != 0)
				break;
			// Can happen if timeout has fired and unblocked us,
			// but before we had a chance to run, timeout has been reset.
			// Pretend it has not happened and retry.
		}
	}
	FLUSH(&err);
}
示例#7
0
void
net·runtime_pollWait(PollDesc* pd, intgo mode, intgo err)
{
    err = 0;
    FLUSH(&err);
#line 140 "/home/14/ren/source/golang/go/src/pkg/runtime/netpoll.goc"

    err = checkerr(pd, mode);
    if(err == 0) {
        // As for now only Solaris uses level-triggered IO.
        if(Solaris)
            runtime·netpollarm(pd, mode);
        while(!netpollblock(pd, mode, false)) {
            err = checkerr(pd, mode);
            if(err != 0)
                break;
            // Can happen if timeout has fired and unblocked us,
            // but before we had a chance to run, timeout has been reset.
            // Pretend it has not happened and retry.
        }
    }
    FLUSH(&err);
}