<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>libvpoll: create synthetic events for poll, select and friends</title>
        <link>https://peertube.watch/videos/watch/11b909da-3534-4f20-a13c-634d23b06c01</link>
        <description>Many programs use poll/select system calls to wait for events that are triggered by file descriptor I/O events. For instance, to write a library able to behave like a network stack (e.g. lwip and picoTCP) or a device, it's possible to implement functions like my_socket, my_accept, my_open and my_ioctl, as drop-in replacement of the system call counterparts. Additionally, it's possible to use dynamic library magic to rename/divert the system call requests to use their virtual implementation provided by the library. Unfortunately this approach cannot be applied to poll/select system calls because Linux doesn't have a system call that permits to generate synthetic generic events for a file descriptor, so it is not possible for libraries to provide file descriptors suitable for select/poll system calls. libvpoll permits to define file descriptors whose I/O events can be generated at user level. This permits to generate synthetic events for poll, select, ppoll, pselect, epoll, etc. The libvpoll library can use two different supports: a module that provides a virtual device and a kernel patch extending the eventfd system call. When neither are availables, a feature-limited emulation is provided as a fallback: based on pipe it manages only POLLIN and POLLOUT. This approach allows mixing real file descriptors with others provided by libraries as parameters of poll/select system calls. For example libvpoll has been used in picoxnet, a user-level network stack implemented as a library for the Internet of Threads. libvpoll, as well as the kernel device module, are already available in Debian. Speakers: Luca Bassi, Renzo Davoli, Track: Kernel devroom, Room: UB5.132, When: Sunday 4 February 2024, 10:10–10:30 (Brussels time), Schedule: FOSDEM 2024 event page, Slides &amp; links Slides, libvpoll source code, Licence: Creative Commons Attribution 2.0 Belgium (CC BY 2.0 BE) (as stated in the FOSDEM video archive). Attribution: “libvpoll: create synthetic events for poll, select and friends” by Luca Bassi, Renzo Davoli, FOSDEM 2024. Original recording: 2024/ub5132/fosdem-2024-3102-libvpoll-create-synthetic-events-for-poll-select-and-friends.av1.webm from the FOSDEM video archive. This channel is an unofficial mirror; FOSDEM is a free and non-commercial event organised by the community for the community.</description>
        <lastBuildDate>Sun, 25 Oct 2026 01:52:27 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>PeerTube - https://peertube.watch</generator>
        <image>
            <title>libvpoll: create synthetic events for poll, select and friends</title>
            <url>https://peertube.watch/lazy-static/avatars/3b284627-b75f-409e-ac2e-10f4c2946f43.png</url>
            <link>https://peertube.watch/videos/watch/11b909da-3534-4f20-a13c-634d23b06c01</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://peertube.watch/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://peertube.watch/feeds/video-comments.xml?videoId=11b909da-3534-4f20-a13c-634d23b06c01" rel="self" type="application/rss+xml"/>
    </channel>
</rss>