func NewStableRateLimiter(threshold int64, refillPeriod time.Duration) (rateLimiter *StableRateLimiter) {
	rateLimiter = &StableRateLimiter{
		threshold:        threshold,
		currentThreshold: threshold,
		refillPeriod:     refillPeriod,
		broadcastChannel: make(chan bool),
	}
	return rateLimiter
}
NewStableRateLimiter returns a StableRateLimiter.
package boomer
import (
	"errors"
	"math"
	"strconv"
	"strings"
	"sync/atomic"
	"time"
)
type RateLimiter interface {
	Start()
	Acquire() bool
	Stop()
}
type StableRateLimiter struct {
	threshold        int64
	currentThreshold int64
	refillPeriod     time.Duration
	broadcastChannel chan bool
	quitChannel      chan bool
}