From b0fbf0ff36132a33810eb515b271b08518dc9f6a Mon Sep 17 00:00:00 2001 From: Sergey Avseyev Date: Tue, 12 Mar 2013 13:27:01 +0300 Subject: [PATCH] pillowfight.cc: allow to share IO object in single-threaded mode only Change-Id: Ib4395624cdb4a710b391d89a50cf3a2b2bb6ad35 Reviewed-on: http://review.couchbase.org/25105 Reviewed-by: Trond Norbye Tested-by: Trond Norbye --- example/pillowfight/pillowfight.cc | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/example/pillowfight/pillowfight.cc b/example/pillowfight/pillowfight.cc index 576f21e57..1886af396 100644 --- a/example/pillowfight/pillowfight.cc +++ b/example/pillowfight/pillowfight.cc @@ -134,6 +134,10 @@ class Configuration numThreads = val; } + uint32_t getNumThreads() { + return numThreads; + } + void setNumInstances(uint32_t val) { numInstances = val; } @@ -194,12 +198,15 @@ extern "C" { class InstancePool { public: - InstancePool(size_t size) { - lcb_error_t err = lcb_create_io_ops(&io, NULL); - if (err != LCB_SUCCESS) { - std::cerr << "Failed to create IO option: " - << lcb_strerror(NULL, err) << std::endl; - exit(EXIT_FAILURE); + InstancePool(size_t size): io(NULL) { + if (config.getNumThreads() == 1) { + /* allow to share IO object in single-thread only */ + lcb_error_t err = lcb_create_io_ops(&io, NULL); + if (err != LCB_SUCCESS) { + std::cerr << "Failed to create IO option: " + << lcb_strerror(NULL, err) << std::endl; + exit(EXIT_FAILURE); + } } for (size_t ii = 0; ii < size; ++ii) {