diff --git a/TinyGsmFifo.h b/TinyGsmFifo.h index 5c7c078..99b9880 100644 --- a/TinyGsmFifo.h +++ b/TinyGsmFifo.h @@ -32,16 +32,16 @@ public: return s - 1; } - T put(const T& c) + bool put(const T& c) { int i = _w; int j = i; i = _inc(i); - while (i == _r) // = !writeable() - /* nothing / just wait */; + if (i == _r) // !writeable() + return false; _b[j] = c; _w = i; - return c; + return true; } int put(const T* p, int n, bool t = false) @@ -85,14 +85,14 @@ public: return s; } - T get(void) + bool get(T* p) { int r = _r; - while (r == _w) // = !readable() - /* nothing / just wait */; - T t = _b[r]; + if (r == _w) // !readable() + return false; + *p = _b[r]; _r = _inc(r); - return t; + return true; } int get(T* p, int n, bool t = false)