Event loop
Skill a5c-ai/babysitter/library/specializations/network-programming/skills/event-loop
Babysitter enforces obedience on agentic workforces and enables them to manage extremely complex tasks and workflows through deterministic, hallucination-free self-orchestration
npx -y skills add a5c-ai/babysitter --skill event-loopAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Expert skill for high-performance event-driven I/O programming and optimization
SKILL.md
2.3 KB, as published. Nobody here has run it
Event Loop Skill
Expert skill for high-performance event-driven I/O programming across platforms and runtime environments.
Capabilities
- Platform Multiplexers: Configure epoll (Linux), kqueue (BSD/macOS), IOCP (Windows)
- Performance Analysis: Analyze event loop performance and identify bottlenecks
- Event Debugging: Debug event handling issues and callback delays
- Framework Code Generation: Generate code for libuv, Boost.Asio, Tokio, and mio
- C10K+ Optimization: Optimize for massive concurrent connection handling
- Profiling: Profile event loop performance with system tools
- io_uring Integration: Implement Linux io_uring for high-performance I/O
- Timer Management: Efficient timer wheel and hierarchical timing implementations
Tools and Dependencies
strace/dtrace- System call tracingperf- Linux performance analysislibuv- Cross-platform async I/Oio_uring- Linux async I/O interfaceTokio- Rust async runtimeBoost.Asio- C++ async I/O
Target Processes
- event-driven-socket-handler.js
- tcp-socket-server.js
- websocket-server.js
- layer4-load-balancer.js
Usage Examples
epoll Event Loop (C)
int epfd = epoll_create1(0);
struct epoll_event ev, events[MAX_EVENTS];
ev.events = EPOLLIN | EPOLLET; // Edge-triggered
ev.data.fd = listen_fd;
epoll_ctl(epfd, EPOLL_CTL_ADD, listen_fd, &ev);
while (1) {
int n = epoll_wait(epfd, events, MAX_EVENTS, -1);
for (int i = 0; i < n; i++) {
handle_event(&events[i]);
}
}
io_uring Setup
struct io_uring ring;
io_uring_queue_init(256, &ring, 0);
// Submit and complete I/O operations
Performance Profiling
perf record -g ./server
perf report --stdio
strace -c -f ./server
Quality Gates
- Event handling latency within threshold
- No callback starvation
- Memory usage stable under load
- CPU utilization optimized
- C10K+ connection handling verified