Currently, we wait application(user submitted program) to end before sending any byte to client(for convenience).
This issue contains two parts to fix:
This won't affect application's usability. However, use of pipe(2) should be tested to prove its effectiveness.
Currently, we wait application(user submitted program) to end before sending any byte to client(for convenience).
This issue contains two parts to fix:
judger/src/language/stage) to accept stream and possibly return WA early.judger/src/sandbox/monitor/output.rs)we should use
pipe(2)instead of duplex, which we can ensure no intermediate copy and thus ensure output limit isn't enforced too early or late.This won't affect application's usability. However, use of
pipe(2)should be tested to prove its effectiveness.