src/ev_poll.c
__attribute__((constructor))
static void _do_register(void)
{
	struct poller *p;

	if (nbpollers >= MAX_POLLERS)
		return;
	p = &pollers[nbpollers++];

	p->name = "poll";
	p->pref = 200;
	p->private = NULL;

	p->clo  = __fd_clo;
	p->test = _do_test;
	p->init = _do_init;
	p->term = _do_term;
	p->poll = _do_poll;
}
/*
 * It is a constructor, which means that it will automatically be called before
 * main(). This is GCC-specific but it works at least since 2.95.
 * Special care must be taken so that it does not need any uninitialized data.
 */
It is a constructor, which means that it will automatically be called before
main(). This is GCC-specific but it works at least since 2.95.
Special care must be taken so that it does not need any uninitialized data.
It is a constructor which means that it will automatically be called before main () . This is GCC - specific but it works at least since 2 . 95 . Special care must be taken so that it does not need any uninitialized data .
__attribute__((constructor))
static void _do_register(void)
{
	struct poller *p;
	if (nbpollers >= MAX_POLLERS)
		return;
	p = &pollers[nbpollers++];
	p->name = "poll";
	p->pref = 200;
	p->private = NULL;
	p->clo  = __fd_clo;
	p->test = _do_test;
	p->init = _do_init;
	p->term = _do_term;
	p->poll = _do_poll;
}
__attribute__ ( ( constructor ) ) static void _do_register ( void ) { struct poller * p ; if ( nbpollers >= MAX_POLLERS ) return ; p = & pollers [ nbpollers ++ ] ; p -> name = " " ; p -> pref = 200 ; p -> private = NULL ; p -> clo = __fd_clo ; p -> test = _do_test ; p -> init = _do_init ; p -> term = _do_term ; p -> poll = _do_poll ; }
It is a constructor, which means that it will automatically be called before
 main().
It is a constructor which means that it will automatically be called before main () .