changed mux-poll again
This commit is contained in:
		| @ -40,14 +40,7 @@ int mio_sys_initmux (mio_t* mio) | |||||||
| { | { | ||||||
| 	mio_sys_mux_t* mux = &mio->sysdep->mux; | 	mio_sys_mux_t* mux = &mio->sysdep->mux; | ||||||
|  |  | ||||||
| #if defined(POLL) | #if defined(USE_EPOLL) | ||||||
| 	mux->devnull = open("/dev/null", O_RDONLY);	 |  | ||||||
| 	if (mux->devnull == -1) |  | ||||||
| 	{ |  | ||||||
| 		mio_seterrwithsyserr (mio, 0, errno); |  | ||||||
| 		return -1; |  | ||||||
| 	} |  | ||||||
| #elif defined(USE_EPOLL) |  | ||||||
| 	mux->hnd = epoll_create(1000); /* TODO: choose proper initial size? */ | 	mux->hnd = epoll_create(1000); /* TODO: choose proper initial size? */ | ||||||
| 	if (mux->hnd == -1) | 	if (mux->hnd == -1) | ||||||
| 	{ | 	{ | ||||||
| @ -82,9 +75,6 @@ void mio_sys_finimux (mio_t* mio) | |||||||
| 	} | 	} | ||||||
| 	mux->pd.capa = 0; | 	mux->pd.capa = 0; | ||||||
|  |  | ||||||
| 	close (mux->devnull); |  | ||||||
| 	mux->devnull = MIO_SYSHND_INVALID; |  | ||||||
|  |  | ||||||
| #elif defined(USE_EPOLL) | #elif defined(USE_EPOLL) | ||||||
| 	close (mux->hnd); | 	close (mux->hnd); | ||||||
| 	mux->hnd = MIO_SYSHND_INVALID; | 	mux->hnd = MIO_SYSHND_INVALID; | ||||||
| @ -128,7 +118,7 @@ int mio_sys_ctrlmux (mio_t* mio, mio_sys_mux_cmd_t cmd, mio_dev_t* dev, int dev_ | |||||||
| 	switch (cmd) | 	switch (cmd) | ||||||
| 	{ | 	{ | ||||||
| 		case MIO_SYS_MUX_CMD_INSERT: | 		case MIO_SYS_MUX_CMD_INSERT: | ||||||
| 			if (idx != MUX_INDEX_INVALID || idex != MUX_INDEX_SUSPENDED) | 			if (idx != MUX_INDEX_INVALID) /* not valid index and not MUX_INDEX_SUSPENDED */ | ||||||
| 			{ | 			{ | ||||||
| 				mio_seterrnum (mio, MIO_EEXIST); | 				mio_seterrnum (mio, MIO_EEXIST); | ||||||
| 				return -1; | 				return -1; | ||||||
| @ -177,12 +167,12 @@ int mio_sys_ctrlmux (mio_t* mio, mio_sys_mux_cmd_t cmd, mio_dev_t* dev, int dev_ | |||||||
| 			if (dev_cap & MIO_DEV_CAP_IN_WATCHED) events |= POLLIN; | 			if (dev_cap & MIO_DEV_CAP_IN_WATCHED) events |= POLLIN; | ||||||
| 			if (dev_cap & MIO_DEV_CAP_OUT_WATCHED) events |= POLLOUT; | 			if (dev_cap & MIO_DEV_CAP_OUT_WATCHED) events |= POLLOUT; | ||||||
|  |  | ||||||
| 			if (idx == MIO_INDEX_INVALID) | 			if (idx == MUX_INDEX_INVALID) | ||||||
| 			{ | 			{ | ||||||
| 				mio_seterrnum (mio, MIO_ENOENT); | 				mio_seterrnum (mio, MIO_ENOENT); | ||||||
| 				return -1; | 				return -1; | ||||||
| 			} | 			} | ||||||
| 			else if (idx == MIO_INDEX_SUSPENDED)  | 			else if (idx == MUX_INDEX_SUSPENDED)  | ||||||
| 			{ | 			{ | ||||||
| 				if (!events) return 0; /* no change. keep suspended */ | 				if (!events) return 0; /* no change. keep suspended */ | ||||||
| 				goto do_insert; | 				goto do_insert; | ||||||
| @ -198,9 +188,10 @@ int mio_sys_ctrlmux (mio_t* mio, mio_sys_mux_cmd_t cmd, mio_dev_t* dev, int dev_ | |||||||
| 			mux->pd.pfd[idx].events = events; | 			mux->pd.pfd[idx].events = events; | ||||||
| 			 | 			 | ||||||
| 			return 0; | 			return 0; | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		case MIO_SYS_MUX_CMD_DELETE: | 		case MIO_SYS_MUX_CMD_DELETE: | ||||||
| 			if (idx == MIO_INDEX_INVALID) | 			if (idx == MUX_INDEX_INVALID) | ||||||
| 			{ | 			{ | ||||||
| 				mio_seterrnum (mio, MIO_ENOENT); | 				mio_seterrnum (mio, MIO_ENOENT); | ||||||
| 				return -1; | 				return -1; | ||||||
|  | |||||||
| @ -61,9 +61,6 @@ struct mio_sys_mux_t | |||||||
| 		mio_oow_t size; | 		mio_oow_t size; | ||||||
| 		mio_oow_t capa; | 		mio_oow_t capa; | ||||||
| 	} pd; /* poll data */ | 	} pd; /* poll data */ | ||||||
|  |  | ||||||
|  |  | ||||||
| 	int devnull; |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #elif defined(USE_EPOLL) | #elif defined(USE_EPOLL) | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user