Agent Skills: Event Loop Skill

Expert skill for high-performance event-driven I/O programming and optimization

UncategorizedID: a5c-ai/babysitter/event-loop

Install this agent skill to your local

pnpm dlx add-skill https://github.com/a5c-ai/babysitter/tree/HEAD/plugins/babysitter/skills/babysit/process/specializations/network-programming/skills/event-loop

Skill Files

Browse the full folder contents for event-loop.

Download Skill

Loading file tree…

plugins/babysitter/skills/babysit/process/specializations/network-programming/skills/event-loop/SKILL.md

Skill Metadata

Name
event-loop
Description
Expert skill for high-performance event-driven I/O programming and optimization

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 tracing
  • perf - Linux performance analysis
  • libuv - Cross-platform async I/O
  • io_uring - Linux async I/O interface
  • Tokio - Rust async runtime
  • Boost.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