1616using json = nlohmann::ordered_json;
1717
1818// cast a shared_ptr to a specific type using copy constructor
19- #define copy_cast_ptr (TYPEOUT, ptr ) *(static_cast <TYPEOUT*>(ptr.get()))
19+ #define copy_cast_ptr (TYPEOUT, ptr ) *(static_cast <TYPEOUT*>(ptr.get()));
2020
2121enum stop_type {
2222 STOP_TYPE_NONE,
@@ -210,6 +210,7 @@ struct server_task_result {
210210 int id_slot = -1 ;
211211 server_task_result () = default ;
212212 server_task_result (result_type type) : type(type) {}
213+ virtual ~server_task_result () = default ;
213214};
214215
215216inline std::string stop_type_to_str (stop_type type) {
@@ -276,6 +277,8 @@ struct server_task_result_cmpl_final : server_task_result {
276277 static server_task_result_cmpl_final from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
277278 return copy_cast_ptr (server_task_result_cmpl_final, result_ptr);
278279 }
280+
281+ virtual ~server_task_result_cmpl_final () = default ;
279282};
280283
281284struct server_task_result_cmpl_partial : server_task_result {
@@ -316,6 +319,8 @@ struct server_task_result_cmpl_partial : server_task_result {
316319 static server_task_result_cmpl_partial from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
317320 return copy_cast_ptr (server_task_result_cmpl_partial, result_ptr);
318321 }
322+
323+ virtual ~server_task_result_cmpl_partial () = default ;
319324};
320325
321326struct server_task_result_embd : server_task_result {
@@ -334,6 +339,8 @@ struct server_task_result_embd : server_task_result {
334339 static server_task_result_embd from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
335340 return copy_cast_ptr (server_task_result_embd, result_ptr);
336341 }
342+
343+ virtual ~server_task_result_embd () = default ;
337344};
338345
339346struct server_task_result_rerank : server_task_result {
@@ -351,6 +358,8 @@ struct server_task_result_rerank : server_task_result {
351358 static server_task_result_rerank from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
352359 return copy_cast_ptr (server_task_result_rerank, result_ptr);
353360 }
361+
362+ virtual ~server_task_result_rerank () = default ;
354363};
355364
356365struct server_task_result_error : server_task_result {
@@ -362,6 +371,8 @@ struct server_task_result_error : server_task_result {
362371 static server_task_result_error from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
363372 return copy_cast_ptr (server_task_result_error, result_ptr);
364373 }
374+
375+ virtual ~server_task_result_error () = default ;
365376};
366377
367378struct server_task_result_metrics : server_task_result {
@@ -422,28 +433,26 @@ struct server_task_result_metrics : server_task_result {
422433 static server_task_result_metrics from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
423434 return copy_cast_ptr (server_task_result_metrics, result_ptr);
424435 }
436+
437+ virtual ~server_task_result_metrics () = default ;
425438};
426439
427440struct server_task_result_slot_save_load : server_task_result {
428441 server_task_result_slot_save_load () : server_task_result(RESULT_TYPE_SLOT_SAVE_LOAD) {}
429442 std::string filename;
430443 bool is_save; // true = save, false = load
431444
432- size_t n_saved;
433- size_t n_written;
434-
435- size_t n_restored;
436- size_t n_read;
437-
445+ size_t n_tokens;
446+ size_t n_bytes;
438447 double t_ms;
439448
440449 json to_json () {
441450 if (is_save) {
442451 return json {
443452 { " id_slot" , id_slot },
444453 { " filename" , filename },
445- { " n_saved" , n_saved },
446- { " n_written" , n_written },
454+ { " n_saved" , n_tokens },
455+ { " n_written" , n_bytes },
447456 { " timings" , {
448457 { " save_ms" , t_ms }
449458 }},
@@ -452,8 +461,8 @@ struct server_task_result_slot_save_load : server_task_result {
452461 return json {
453462 { " id_slot" , id_slot },
454463 { " filename" , filename },
455- { " n_restored" , n_restored },
456- { " n_read" , n_read },
464+ { " n_restored" , n_tokens },
465+ { " n_read" , n_bytes },
457466 { " timings" , {
458467 { " restore_ms" , t_ms }
459468 }},
@@ -464,6 +473,8 @@ struct server_task_result_slot_save_load : server_task_result {
464473 static server_task_result_slot_save_load from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
465474 return copy_cast_ptr (server_task_result_slot_save_load, result_ptr);
466475 }
476+
477+ virtual ~server_task_result_slot_save_load () = default ;
467478};
468479
469480struct server_task_result_slot_erase : server_task_result {
@@ -480,6 +491,8 @@ struct server_task_result_slot_erase : server_task_result {
480491 static server_task_result_slot_erase from_ptr (std::unique_ptr<server_task_result> & result_ptr) {
481492 return copy_cast_ptr (server_task_result_slot_erase, result_ptr);
482493 }
494+
495+ virtual ~server_task_result_slot_erase () = default ;
483496};
484497
485498struct server_task_result_apply_lora : server_task_result {
0 commit comments