maintain one watch handler per socket: less mem leaks and up to 3% faster