go func(object *Limit){
for object.maxNum_in_period > 0 {
- for i:=1;i<=object.maxNum_in_period;i++{
- object.bucket <- struct{}{}
+ object.bucket <- struct{}{}
+ for i:=1;i<object.maxNum_in_period;i++{
+ select {
+ case object.bucket <- struct{}{}:;
+ default :i = object.maxNum_in_period
+ }
}
time.Sleep(time.Duration(object.ms_in_period)*time.Millisecond)
}
}
func Test_5(t *testing.T){
- l := New(100,5000,0)
- for i:=0;i<50;i+=1{
+ l := New(100,3000,0)
+ t.Log(l.TK())
+ for i:=1;i<=50;i+=1{
l.TO()
- time.Sleep(time.Millisecond)
}
if l.TK() != 50 {t.Error(`5`,l.TK())}
}
\ No newline at end of file