We recently have done some tests to evaluate performances of different Hadoop versions(1.0, 0.23, Baidu internal version), and found some weird results. One of them is in 1.0 Task.TaskReporter.done() takes too much time, about 2s, this is bad for small tasks. After reviewing source code and add some log, the following code block Task.TaskReporter.done
Originally line 724-730 don't exists, I don't know why it is added. If it is needed, we can replace Thread.sleep with Object.wait(timeout) and Object.notify instead, so it won't block.