backupkey: Handle more clearly the case where we find the secret, but it has no value
[Samba.git] / source3 / torture / bench_pthreadpool.c
blob247063d969463aae0d346cf1061ac6f3e1803cbc
1 /*
2 * Unix SMB/CIFS implementation.
3 * Little pthreadpool benchmark
5 * Copyright (C) Volker Lendecke 2014
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "includes.h"
22 #include "lib/pthreadpool/pthreadpool.h"
23 #include "proto.h"
25 extern int torture_numops;
27 static void null_job(void *private_data)
29 return;
32 bool run_bench_pthreadpool(int dummy)
34 struct pthreadpool *pool;
35 int i, ret;
37 ret = pthreadpool_init(1, &pool);
38 if (ret != 0) {
39 d_fprintf(stderr, "pthreadpool_init failed: %s\n",
40 strerror(ret));
41 return false;
44 for (i=0; i<torture_numops; i++) {
45 int jobid;
47 ret = pthreadpool_add_job(pool, 0, null_job, NULL);
48 if (ret != 0) {
49 d_fprintf(stderr, "pthreadpool_add_job failed: %s\n",
50 strerror(ret));
51 break;
53 ret = pthreadpool_finished_jobs(pool, &jobid, 1);
54 if (ret < 0) {
55 d_fprintf(stderr, "pthreadpool_finished_job failed: %s\n",
56 strerror(-ret));
57 break;
61 pthreadpool_destroy(pool);
63 return (ret == 1);