Index: uspace/lib/cpp/include/internal/hash_table.hpp
===================================================================
--- uspace/lib/cpp/include/internal/hash_table.hpp	(revision 86b3ae983d35b9ff2aba04174835e12eefe2a13c)
+++ uspace/lib/cpp/include/internal/hash_table.hpp	(revision ed9df7db8c0a247865da615722cabf12e7934373)
@@ -787,5 +787,6 @@
 
                 ++size_;
-                // TODO: if we go over max load factor, rehash
+
+                rehash_if_needed();
             }
 
@@ -802,5 +803,6 @@
 
                 ++size_;
-                // TODO: if we go over max load factor, rehash
+
+                rehash_if_needed();
             }
 
@@ -817,5 +819,6 @@
 
                 ++size_;
-                // TODO: if we go over max load factor, rehash
+
+                rehash_if_needed();
             }
 
@@ -1117,4 +1120,15 @@
             }
 
+            void rehash_if_needed()
+            {
+                if (size_ > max_load_factor_ * bucket_count_)
+                    rehash(bucket_count_ * bucket_count_growth_factor_);
+            }
+
+            void increment_size()
+            {
+                ++size_;
+            }
+
         private:
             hash_table_bucket<value_type, size_type>* table_;
@@ -1126,4 +1140,6 @@
             float max_load_factor_;
 
+            static constexpr float bucket_count_growth_factor_{1.25};
+
             size_type get_bucket_idx_(const key_type& key) const
             {
