/* Maximum number of threads to use in any particular thread pool, or -1 for no
* limit */
-int bluesky_max_threads = -1;
+int bluesky_max_threads = 16;
/* Environment variables that can be used to initialize settings. */
static struct {
return;
}
+ /* FIXME: Hack to throttle writes when there is too much dirty data still
+ * to be written out. */
+ while (g_atomic_int_get(&fs->cache_dirty) > 4096
+ || g_atomic_int_get(&fs->cache_total) > 8192) {
+ g_print("Too many dirty pages (%d) or total pages (%d); throttling writes...\n",
+ g_atomic_int_get(&fs->cache_dirty),
+ g_atomic_int_get(&fs->cache_total));
+ struct timespec delay;
+ delay.tv_sec = 2;
+ delay.tv_nsec = 0;
+ nanosleep(&delay, NULL);
+ }
+
g_mutex_lock(inode->lock);
encode_pre_wcc(&wcc, inode);