reactor packet I/O & duplicated packet filter & evicted session filter
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
|
||||
#include "id_generator.h"
|
||||
#include "stellar.h"
|
||||
#include "timestamp.h"
|
||||
|
||||
struct id_generator
|
||||
{
|
||||
@@ -49,11 +48,6 @@ int id_generator_init(uint8_t device_base, uint8_t device_offset)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void id_generator_free()
|
||||
{
|
||||
memset(&global_id_generator, 0, sizeof(struct id_generator));
|
||||
}
|
||||
|
||||
/*
|
||||
* 高位 --- 低位
|
||||
*
|
||||
@@ -61,16 +55,14 @@ void id_generator_free()
|
||||
* | 1bit | 12bit device_id | 8bit thread_id | 28bit timestamp in sec | 15bit sequence per thread |
|
||||
* +------+------------------+----------------+------------------------+---------------------------+
|
||||
*/
|
||||
uint64_t id_generator_get()
|
||||
uint64_t id_generator_alloc(uint64_t now_sec, uint64_t thread_index)
|
||||
{
|
||||
#define MAX_ID_PER_THREAD (32768)
|
||||
#define MAX_ID_BASE_TIME (268435456L)
|
||||
|
||||
uint64_t global_id = 0;
|
||||
uint64_t thread_index = stellar_get_current_thread_index();
|
||||
|
||||
uint64_t id_per_thread = (global_id_generator.thread_volatile[thread_index]++) % MAX_ID_PER_THREAD;
|
||||
uint64_t id_base_time = timestamp_get_sec() % MAX_ID_BASE_TIME;
|
||||
uint64_t id_base_time = now_sec % MAX_ID_BASE_TIME;
|
||||
global_id = (global_id_generator.device_id << 51) |
|
||||
(thread_index << 43) |
|
||||
(id_base_time << 15) |
|
||||
|
||||
Reference in New Issue
Block a user