charicter device 개발 시 멀티 poll 처리 문의드립니다.
character device(/dev/char1) driver를 개발하고 있습니다.
제가 하고자 하는 것은
ap : open 으로 /dev/char1을 open 하고
poll system call 사용하여 위 device로부터 이벤트를 기다리고 있다가
device에 data 쓰여지면, read로 읽어옵니다.
while(1)
{
printf("-------------- %d ----------------\n", polcnt++);
ret = poll((struct pollfd *)&pfds, 1, 10000);
read(fd, buffer, len);
driver : /dev/char1 에 data 가 쓰여졌을 때 poll 루틴에서 event 발생합니다.
그러면, ap 에서 read system call로 data 를 읽어가는 것을 하려고 합니다.
여기서 문의 드리고 싶은것은...
위 ap를 3개 터미널에서 수행해서 /dev/char1으로부터 evnet 기다리고 있을 때
/dev/char1에 데이터가 쓰여지면 3개의 ap 중 한개의 ap만 poll event를 받아
데이터를 읽어오고
나머지 ap 2 개는 poll evnet 를 받지 못하여 데이터를 읽지 못합니다.
결과를 보면, 위 3개 ap가 순차적으로 poll event 를 받습니다.
제가 해보자 하는 것은 device에 data 쓰여지면 이 device를 polling 하고 있는
모든 ap에서 쓰여진 데이터를 읽어오는 것을 하고자 합니다.
제가 하고자 하는것이 가능한지요?
아니면 하나의 fd 만 event 받아서 데이터 읽어올 수 있는지요?
댓글 달기