diff options
Diffstat (limited to '3rdparty/openpgm-svn-r1135/pgm/rate_control.c.c89.patch')
-rw-r--r-- | 3rdparty/openpgm-svn-r1135/pgm/rate_control.c.c89.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1135/pgm/rate_control.c.c89.patch b/3rdparty/openpgm-svn-r1135/pgm/rate_control.c.c89.patch new file mode 100644 index 0000000..d779a78 --- /dev/null +++ b/3rdparty/openpgm-svn-r1135/pgm/rate_control.c.c89.patch @@ -0,0 +1,62 @@ +--- rate_control.c 2010-08-04 15:58:08.000000000 +0800 ++++ rate_control.c89 2010-08-04 15:57:59.000000000 +0800 +@@ -77,7 +77,7 @@ + const bool is_nonblocking + ) + { +- int64_t new_rate_limit; ++ ssize_t new_rate_limit; + + /* pre-conditions */ + pgm_assert (NULL != bucket); +@@ -87,6 +87,7 @@ + return TRUE; + + pgm_spinlock_lock (&bucket->spinlock); ++ { + pgm_time_t now = pgm_time_update_now(); + pgm_time_t time_since_last_rate_check = now - bucket->last_rate_check; + +@@ -95,7 +96,9 @@ + if (time_since_last_rate_check > pgm_msecs(1)) + new_rate_limit = bucket->rate_per_msec; + else { ++#pragma warning( disable : 4244 ) + new_rate_limit = bucket->rate_limit + ((bucket->rate_per_msec * time_since_last_rate_check) / 1000UL); ++#pragma warning( default : 4244 ) + if (new_rate_limit > bucket->rate_per_msec) + new_rate_limit = bucket->rate_per_msec; + } +@@ -105,7 +108,9 @@ + if (time_since_last_rate_check > pgm_secs(1)) + new_rate_limit = bucket->rate_per_sec; + else { ++#pragma warning( disable : 4244 ) + new_rate_limit = bucket->rate_limit + ((bucket->rate_per_sec * time_since_last_rate_check) / 1000000UL); ++#pragma warning( default : 4244 ) + if (new_rate_limit > bucket->rate_per_sec) + new_rate_limit = bucket->rate_per_sec; + } +@@ -132,6 +137,7 @@ + } + pgm_spinlock_unlock (&bucket->spinlock); + return TRUE; ++ } + } + + pgm_time_t +@@ -147,12 +153,14 @@ + return 0; + + pgm_spinlock_lock (&bucket->spinlock); ++ { + const pgm_time_t now = pgm_time_update_now(); + const pgm_time_t time_since_last_rate_check = now - bucket->last_rate_check; + const int64_t bucket_bytes = bucket->rate_limit + pgm_to_secs (bucket->rate_per_sec * time_since_last_rate_check) - n; + pgm_spinlock_unlock (&bucket->spinlock); + + return bucket_bytes >= 0 ? 0 : (bucket->rate_per_sec / -bucket_bytes); ++ } + } + + /* eof */ |