waitEventT implements blocking wait on given events until one of the events have been reported or timeout based on given deadline.
(ctx context.Context, event waiter.EventMask, deadline ktime.Time)
| 835 | // waitEventT implements blocking wait on given events |
| 836 | // until one of the events have been reported or timeout based on given deadline. |
| 837 | func (s *socketOperations) waitEventT(ctx context.Context, event waiter.EventMask, deadline ktime.Time) error { |
| 838 | var err error |
| 839 | t := ctx.(*kernel.Task) |
| 840 | e, ch := waiter.NewChannelEntry(event | waiter.EventErr | waiter.EventHUp) |
| 841 | s.EventRegister(&e) |
| 842 | |
| 843 | if s.Readiness(event|waiter.EventErr|waiter.EventHUp) == 0 { |
| 844 | err = t.BlockWithDeadline(ch, true, deadline) |
| 845 | } |
| 846 | |
| 847 | s.EventUnregister(&e) |
| 848 | return err |
| 849 | } |
no test coverage detected