egutierrez
eb57e83392
feat(cpp/core): sse_client_cpp_core — SSE client con reconnect + Last-Event-ID
...
Cliente Server-Sent Events C++ reusable (fn_sse::Client) con background
thread, exponential backoff, Last-Event-ID y stop() que no bloquea.
Implementacion clave: fork+execvp curl directamente (sin /bin/sh wrapper)
para tener el PID real del proceso curl en curl_pid_, lo que permite que
stop() → kill(SIGTERM) → fgets NULL → join() funcione sin bloqueo.
4 tests (Catch2): connect_and_receive_3_events, parse_event_field,
reconnect_on_disconnect, stop_kills_thread. Fixture Python SSE con
/health probe via http_request_cpp_core.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-18 19:59:50 +02:00
..
2026-05-18 18:17:08 +02:00
2026-04-28 22:05:31 +02:00
2026-04-28 23:40:51 +02:00
2026-05-17 02:44:04 +02:00
2026-05-17 02:44:04 +02:00
2026-05-17 02:44:04 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-14 00:28:20 +02:00
2026-05-03 00:32:55 +02:00
2026-04-25 21:25:51 +02:00
2026-04-28 23:40:51 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-04-24 14:52:09 +02:00
2026-04-24 14:52:09 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:50:29 +02:00
2026-04-25 21:50:29 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-18 18:17:08 +02:00
2026-05-18 18:17:08 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-18 18:17:08 +02:00
2026-05-18 18:17:08 +02:00
2026-05-18 18:17:08 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-28 23:42:35 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-28 23:44:55 +02:00
2026-05-18 18:17:08 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-24 14:52:09 +02:00
2026-04-24 14:52:09 +02:00
2026-04-28 23:42:35 +02:00
2026-04-28 23:53:49 +02:00
2026-04-28 23:53:49 +02:00
2026-04-28 23:53:49 +02:00
2026-04-28 23:55:11 +02:00
2026-04-28 23:55:11 +02:00
2026-04-28 23:55:11 +02:00
2026-04-06 23:46:36 +02:00
2026-04-06 23:46:36 +02:00
2026-05-14 00:28:20 +02:00
2026-04-24 21:31:00 +02:00
2026-04-08 01:17:44 +02:00
2026-04-28 23:40:51 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-18 18:14:37 +02:00
2026-05-18 18:14:37 +02:00
2026-05-18 18:14:56 +02:00
2026-05-18 18:14:37 +02:00
2026-05-18 18:14:37 +02:00
2026-05-18 18:14:56 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-16 16:33:22 +02:00
2026-04-25 21:25:25 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:25 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-04-25 21:25:51 +02:00
2026-04-25 21:25:51 +02:00
2026-05-14 00:28:20 +02:00
2026-05-10 13:30:27 +02:00
2026-05-10 13:30:27 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 11:50:57 +02:00
2026-04-25 21:25:51 +02:00
2026-04-28 23:40:51 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-11 16:28:50 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:51:15 +02:00
2026-04-25 21:51:15 +02:00
2026-04-28 23:40:51 +02:00
2026-04-24 14:52:09 +02:00
2026-04-24 14:52:09 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:25:51 +02:00
2026-04-25 21:25:51 +02:00
2026-04-28 23:40:51 +02:00
2026-05-04 11:52:50 +02:00
2026-05-04 11:52:50 +02:00
2026-05-14 00:28:20 +02:00
2026-05-18 18:17:08 +02:00
2026-05-18 18:17:08 +02:00
2026-05-18 18:17:08 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-28 23:53:08 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:53:08 +02:00
2026-04-28 23:52:37 +02:00
2026-04-28 23:52:37 +02:00
2026-04-28 23:52:37 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-14 00:28:20 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 11:52:50 +02:00
2026-05-04 11:52:50 +02:00
2026-05-14 00:28:20 +02:00
2026-04-28 23:58:40 +02:00
2026-04-28 23:51:23 +02:00
2026-04-28 23:51:23 +02:00
2026-04-28 23:51:59 +02:00
2026-04-25 21:48:50 +02:00
2026-05-14 00:28:20 +02:00
2026-05-18 19:59:50 +02:00
2026-05-18 19:59:50 +02:00
2026-05-18 19:59:50 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:00:31 +02:00
2026-04-25 21:00:31 +02:00
2026-04-28 23:40:51 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:50:35 +02:00
2026-04-25 21:50:35 +02:00
2026-05-14 00:28:20 +02:00
2026-05-05 23:12:50 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-12 03:10:00 +02:00
2026-04-25 21:14:15 +02:00
2026-04-28 23:44:55 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-15 17:24:53 +02:00
2026-05-17 00:07:03 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-15 17:24:53 +02:00
2026-05-17 00:07:03 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:50:21 +02:00
2026-04-25 21:50:21 +02:00
2026-04-28 23:44:55 +02:00