Skip to content

Commit

Permalink
fix for 32bit build
Browse files Browse the repository at this point in the history
  • Loading branch information
ikod committed Apr 8, 2020
1 parent 532a7e3 commit aba020c
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
2 changes: 1 addition & 1 deletion dub.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@
"name": "release"
}
]
}
}
13 changes: 6 additions & 7 deletions source/timingwheels/timingwheels_impl.d
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ struct TimingWheels(T)
{
throw new ScheduleTimerError("Timer already scheduled");
}
long level_index = 0;
size_t level_index = 0;
long t = ticks;
long s = 1; // width of the slot in ticks on level
long shift = 0;
Expand All @@ -422,7 +422,7 @@ struct TimingWheels(T)
}
auto level = &levels[level_index];
auto mask = s - 1;
auto slot_index = (level.now + (t>>shift) + ((t&mask)>0?1:0)) & MASK;
size_t slot_index = (level.now + (t>>shift) + ((t&mask)>0?1:0)) & MASK;
auto slot = &levels[level_index].slots[slot_index];
debug(timingwheels) safe_tracef("use level/slot %d/%d, level now: %d", level_index, slot_index, level.now);
auto le = getOrCreate();
Expand Down Expand Up @@ -597,10 +597,10 @@ struct TimingWheels(T)
auto listElement = slot.head;

immutable delta = listElement.scheduled_at - now0;
long lower_level_index = 0;
size_t lower_level_index = 0;
long t = delta;
long s = 1; // width of the slot in ticks on level
long shift = 0;
size_t s = 1; // width of the slot in ticks on level
size_t shift = 0;
while(t > s<<8) // while t > slots on level
{
t -= (SLOTS - (levels[lower_level_index].now & MASK)) * s;
Expand All @@ -609,7 +609,7 @@ struct TimingWheels(T)
shift += 8;
}
auto mask = s - 1;
auto lower_level_slot_index = (levels[lower_level_index].now + (t>>shift) + ((t&mask)>0?1:0)) & MASK;
size_t lower_level_slot_index = (levels[lower_level_index].now + (t>>shift) + ((t&mask)>0?1:0)) & MASK;
debug(timingwheels) safe_tracef("move timer id: %s, scheduledAt; %d to level %s, slot: %s (delta=%s)",
listElement.timer.id(), listElement.scheduled_at, lower_level_index, lower_level_slot_index, delta);
listElement.position = ((lower_level_index<<8) | lower_level_slot_index) & 0xffff;
Expand Down Expand Up @@ -814,7 +814,6 @@ unittest
globalLogLevel = LogLevel.info;
auto rnd = Random(142);
auto Tick = getValue!Duration();

/// track execution
int counter;
SysTime last;
Expand Down

0 comments on commit aba020c

Please sign in to comment.