cuốn sách gpt4 ai đã làm

linux - One-shot *level*-trigger epoll() : EPOLLONESHOT có ngụ ý EPOLLET không?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 11:48:40 28 4
mua khóa gpt4 Nike

Có thể làm điều này trong một lầnlớp họcĐược sử dụng ở chế độ kích hoạtepoll?
Khi tôi tìm kiếm, tôi không thể tìm thấy bất kỳ thông tin nào về nó;

câu trả lời hay nhất

Khi EPOLLONESHOT cờ được chọn và bạn đã kéo một sự kiện cho một ổ cắm, thì ổ cắm đó sẽ không bị xóa khỏi epoll như nhiều người nghĩ nhưng các sự kiện của nó sẽ bị vô hiệu hóa. Bạn có thể sử dụng. epoll_ctl/EPOLL_CTL_MOD Kích hoạt chúng một lần nữa.

EPOLLONESHOT Một ví dụ về hành vi hữu ích là khi bạn đọc dữ liệu có sẵn từ ổ cắm vào bộ đệm. Bộ đệm sẽ bị xóa một cách độc lập, nhưng bạn phải tắt các sự kiện của ổ cắm cho đến khi nó không còn trống, ngay cả khi ổ cắm có dữ liệu khác. Sau đó, sau khi bộ đệm đã được sử dụng và xóa, bạn có thể kích hoạt lại ổ cắm.

Sự khác biệt giữa hành vi "một lần" được kích hoạt theo cấp độ và được kích hoạt theo cạnh chỉ xuất hiện khi bạn bật lại ổ cắm. Một ví dụ:

  1. Ổ cắm đã nhận được dữ liệu 7K (hiện tại nó được lưu trữ trong bộ đệm kernel)
  2. Bạn đợi các sự kiện đầu vào và sau đó các sự kiện ổ cắm bị vô hiệu hóa do EPOLLONESHOT.
  3. Bạn đọc 4K vào bộ đệm cấp ứng dụng.
  4. Sau đó bộ đệm ứng dụng được sử dụng và xóa. bạn sử dụng epoll_ctl/EPOLL_CTL_MOD Kích hoạt lại ổ cắm.

EPOLLOSHOT được kích hoạt theo chiều ngang:

  1. Vì vẫn còn dữ liệu 3K trong bộ đệm kernel nên sự kiện sẽ được kích hoạt lại.

Edge kích hoạt EPOLONESHOT:

  1. Nó không kích hoạt lại sự kiện đối với dữ liệu có sẵn. Bạn phải đọc và chờ đợi LẠI/EWOULDBLOCK để kiểm tra nó.

Về linux - one-shot *level*-triggered epoll() : EPOLLONESHOT có ngụ ý EPOLLET không?, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/39173429/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress