
On Wed, Dec 15, 2010 at 03:32:26PM +0000, Daniel P. Berrange wrote:
On Wed, Dec 15, 2010 at 08:24:44AM -0700, Eric Blake wrote:
On 12/15/2010 08:20 AM, Eric Blake wrote:
On 12/14/2010 07:34 PM, Wen Congyang wrote:
In addition to Hu's comments, and the fact that you are probably going to revise the exposed interface anyways, here's some additional points.
One other point - how does this relate to the timeouts already implemented in places like daemon/event.c or src/util/event.c? Are those implementations already sufficient for your needs without having to write a new implementation? Or conversely, should your patch series be lengthened into rewriting those interfaces to take advantage of your new implementation in order to ease maintenance by focusing all timeout code into a single reusable interface? In other words, I'm still seeking a bit more justification for this patch.
IMHO it should be sufficient for this new code to simply call the existing virEventAddTimeout() API, and run the event loop in the background thread.
But wouldn't it be a better idea to implement new timer APIs that focus only on timeout? I think it will make the code more modular and easier to maintain&improve. Althouth the virEventAddTimeout() API works well, but it has several disadvantages: - Not so easy to use: the user have to create a thread to run the event loop - All timers are not only serialized with each other but also with event handlers(if there are), if there are too many timers and event handlers it could cause performance impact. -- Thanks, Hu Tao