cleanup: remove unused constants MAX_CURRENCIES and _D1

This commit is contained in:
nicolas 2026-05-29 12:05:30 -03:00
parent 2c8cfc74b5
commit 17aac4b4ef
2 changed files with 19 additions and 21 deletions

View File

@ -10,7 +10,6 @@
#include <unistd.h> #include <unistd.h>
#include <stdarg.h> #include <stdarg.h>
#define _D1 1.0
#define FILL_TIMEOUT_MS 5000 #define FILL_TIMEOUT_MS 5000
struct executor_thread_s { struct executor_thread_s {
@ -34,21 +33,21 @@ void executor_write_report(const char *fmt, ...) {
/* ── Timestamp helpers ── */ /* ── Timestamp helpers ── */
static int64_t now_mono_ms(void) { static double now_mono_ms(void) {
struct timespec ts; struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts); clock_gettime(CLOCK_MONOTONIC, &ts);
return (int64_t)ts.tv_sec * 1000 + (int64_t)ts.tv_nsec / 1000000; return (double)ts.tv_sec * 1000.0 + (double)ts.tv_nsec / 1000000.0;
} }
static int64_t now_realtime_ms(void) { static double now_realtime_ms(void) {
struct timespec ts; struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts); clock_gettime(CLOCK_REALTIME, &ts);
return (int64_t)ts.tv_sec * 1000 + (int64_t)ts.tv_nsec / 1000000; return (double)ts.tv_sec * 1000.0 + (double)ts.tv_nsec / 1000000.0;
} }
static void format_ts(char *buf, size_t sz) { static void format_ts(char *buf, size_t sz) {
time_t s = time(NULL); time_t s = time(NULL);
int ms = (int)(now_realtime_ms() % 1000); int ms = (int)fmod(now_realtime_ms(), 1000.0);
struct tm gm; struct tm gm;
gmtime_r(&s, &gm); gmtime_r(&s, &gm);
strftime(buf, sz, "%Y-%m-%dT%H:%M:%S.", &gm); strftime(buf, sz, "%Y-%m-%dT%H:%M:%S.", &gm);
@ -175,8 +174,8 @@ void executor_execute_triangle(executor_thread_t *et,
char ts_buf[32]; char ts_buf[32];
char corr_id[64]; char corr_id[64];
int64_t exec_start_rt = now_realtime_ms(); double exec_start_rt = now_realtime_ms();
int64_t exec_start_mono = now_mono_ms(); double exec_start_mono = now_mono_ms();
double leg_timings[6] = {0}; /* leg0_order, leg0_fill, leg1_order, leg1_fill, leg2_order, leg2_fill */ double leg_timings[6] = {0}; /* leg0_order, leg0_fill, leg1_order, leg1_fill, leg2_order, leg2_fill */
snprintf(corr_id, sizeof(corr_id), "%08x%08x%08x%08x", snprintf(corr_id, sizeof(corr_id), "%08x%08x%08x%08x",
(unsigned)(uintptr_t)&sig->legs.legs[0] ^ (unsigned)sig->ts_ms, (unsigned)(uintptr_t)&sig->legs.legs[0] ^ (unsigned)sig->ts_ms,
@ -208,20 +207,20 @@ void executor_execute_triangle(executor_thread_t *et,
/* Build a client OID */ /* Build a client OID */
char client_oid[64]; char client_oid[64];
snprintf(client_oid, sizeof(client_oid), "c%08x%04x", snprintf(client_oid, sizeof(client_oid), "c%08x%04x",
(unsigned)(now_realtime_ms() & 0xFFFFFFFF), (unsigned)((uint64_t)now_realtime_ms() & 0xFFFFFFFF),
(unsigned)leg); (unsigned)leg);
fills[leg][4] = input_vol; fills[leg][4] = input_vol;
/* ── Capture order fire timing BEFORE sending (realtime) ── */ /* ── Capture order fire timing BEFORE sending (realtime) ── */
int64_t t0 = now_mono_ms(); double t0 = now_mono_ms();
if (leg < 6) leg_timings[leg * 2] = (double)(now_realtime_ms() - exec_start_rt); if (leg < 6) leg_timings[leg * 2] = (double)(now_realtime_ms() - exec_start_rt);
/* ── Place order ── */ /* ── Place order ── */
char order_id[32] = {0}; char order_id[32] = {0};
char err_msg[128] = {0}; char err_msg[128] = {0};
bool ok = false; bool ok = false;
int64_t order_fire_ms_tracking = t0; double order_fire_ms_tracking = t0;
if (sig->live) { if (sig->live) {
ok = rest_order_place(et->rest, sl->symbol, sl->side, ok = rest_order_place(et->rest, sl->symbol, sl->side,
@ -248,7 +247,7 @@ void executor_execute_triangle(executor_thread_t *et,
format_ts(ts_buf, sizeof(ts_buf)); format_ts(ts_buf, sizeof(ts_buf));
executor_write_report( executor_write_report(
"%s ORDER | corr=%s | leg%d | %s | %s | vol=%.10g | " "%s ORDER | corr=%s | leg%d | %s | %s | vol=%.10g | "
"order_id=%s | lat=%.1fms\n", "order_id=%s | lat=%.3fms\n",
ts_buf, corr_id, leg, sl->symbol, sl->side, ts_buf, corr_id, leg, sl->symbol, sl->side,
input_vol, ok ? order_id : "NONE", fills[leg][5]); input_vol, ok ? order_id : "NONE", fills[leg][5]);
} }
@ -258,7 +257,7 @@ void executor_execute_triangle(executor_thread_t *et,
format_ts(ts_buf, sizeof(ts_buf)); format_ts(ts_buf, sizeof(ts_buf));
executor_write_report( executor_write_report(
"%s REJECTED | corr=%s | leg%d | %s | %s | vol=%.10g | " "%s REJECTED | corr=%s | leg%d | %s | %s | vol=%.10g | "
"error=%s | lat=%.1fms\n", "error=%s | lat=%.3fms\n",
ts_buf, corr_id, leg, sl->symbol, sl->side, ts_buf, corr_id, leg, sl->symbol, sl->side,
input_vol, err_msg, fills[leg][5]); input_vol, err_msg, fills[leg][5]);
success = false; success = false;
@ -330,7 +329,7 @@ void executor_execute_triangle(executor_thread_t *et,
format_ts(ts_buf, sizeof(ts_buf)); format_ts(ts_buf, sizeof(ts_buf));
executor_write_report( executor_write_report(
"%s FILL | corr=%s | leg%d | %s | %s | " "%s FILL | corr=%s | leg%d | %s | %s | "
"out=%.10g@%.6g | fee=%.6g %s | lat=%.1fms\n", "out=%.10g@%.6g | fee=%.6g %s | lat=%.3fms\n",
ts_buf, corr_id, leg, sl->symbol, sl->side, ts_buf, corr_id, leg, sl->symbol, sl->side,
is_buy ? total_size : total_funds, avg_price, is_buy ? total_size : total_funds, avg_price,
total_fee, sl->fee_currency, total_fee, sl->fee_currency,
@ -406,7 +405,7 @@ void executor_execute_triangle(executor_thread_t *et,
effective_bps = (profit / leg0_in) * 10000.0; effective_bps = (profit / leg0_in) * 10000.0;
} }
int64_t total_ms = now_mono_ms() - exec_start_mono; double total_ms = now_mono_ms() - exec_start_mono;
/* ── Build timing string (t0 = book_update_arrived = 0.0ms) ── */ /* ── Build timing string (t0 = book_update_arrived = 0.0ms) ── */
char timings_str[512] = ""; char timings_str[512] = "";
@ -416,7 +415,7 @@ void executor_execute_triangle(executor_thread_t *et,
if (book_base > 0) { if (book_base > 0) {
if (sig->book_ts_ms > 0) if (sig->book_ts_ms > 0)
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp, tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
"t-1_snapshot=%.1fms ", "t-1_snapshot=%.3fms ",
(double)((int64_t)sig->book_ts_ms - book_base)); (double)((int64_t)sig->book_ts_ms - book_base));
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp, tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
@ -424,7 +423,7 @@ void executor_execute_triangle(executor_thread_t *et,
if (sig->ts_ms > 0) if (sig->ts_ms > 0)
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp, tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
"t1_signal=%.1fms ", "t1_signal=%.3fms ",
(double)((int64_t)sig->ts_ms - book_base)); (double)((int64_t)sig->ts_ms - book_base));
double sig_recv = (double)(exec_start_rt - book_base); double sig_recv = (double)(exec_start_rt - book_base);
@ -433,9 +432,9 @@ void executor_execute_triangle(executor_thread_t *et,
double f = leg_timings[l * 2 + 1]; double f = leg_timings[l * 2 + 1];
if (fills[l][0] > 0) { if (fills[l][0] > 0) {
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp, tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
"t%d_leg%d_order=%.1fms ", 2 + l * 2, l, sig_recv + o); "t%d_leg%d_order=%.3fms ", 2 + l * 2, l, sig_recv + o);
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp, tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
"t%d_leg%d_fill=%.1fms ", 3 + l * 2, l, sig_recv + f); "t%d_leg%d_fill=%.3fms ", 3 + l * 2, l, sig_recv + f);
} }
} }
} }
@ -462,7 +461,7 @@ void executor_execute_triangle(executor_thread_t *et,
} }
} }
int n = snprintf(fills_str + fills_pos, sizeof(fills_str) - fills_pos, int n = snprintf(fills_str + fills_pos, sizeof(fills_str) - fills_pos,
"%sL%d:%s %s %s->%s %.10g@%.6g(fee=%.6g %s lat=%.1fms)", "%sL%d:%s %s %s->%s %.10g@%.6g(fee=%.6g %s lat=%.3fms)",
leg > 0 ? ", " : "", leg > 0 ? ", " : "",
leg, side, pair, in_ccy, out_ccy, leg, side, pair, in_ccy, out_ccy,
fills[leg][0], fills[leg][1], fills[leg][2], fills[leg][0], fills[leg][1], fills[leg][2],

View File

@ -9,7 +9,6 @@
#include "config.h" #include "config.h"
#define MAX_TRIANGLES 16384 #define MAX_TRIANGLES 16384
#define MAX_CURRENCIES 512
/* Describes one triangular arbitrage path of three trading pairs */ /* Describes one triangular arbitrage path of three trading pairs */
typedef struct { typedef struct {