poller.c: explain why attach() is separated from construct()