Skip to content

Commit 8790bf8

Browse files
committed
careful about the return value of different requests
1 parent 639b2b4 commit 8790bf8

1 file changed

Lines changed: 11 additions & 15 deletions

File tree

src/kv_shm.c

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -288,37 +288,33 @@ static void KVWorkerMain(int argc, char *argv[]) {
288288

289289
FuncName func;
290290
memcpy(&func, ptr->area, sizeof(FuncName));
291-
uint32 response_index;
292-
memcpy(&response_index,
293-
ptr->area + sizeof(FuncName),
294-
sizeof(response_index));
291+
uint32 responseId;
292+
memcpy(&responseId, ptr->area + sizeof(FuncName), sizeof(responseId));
295293

296294
memset(buf, 0, BUFSIZE);
297-
memcpy(buf,
298-
ptr->area + sizeof(FuncName) + sizeof(response_index),
299-
BUFSIZE - sizeof(FuncName) - sizeof(response_index));
295+
memcpy(buf, ptr->area + sizeof(FuncName), BUFSIZE - sizeof(FuncName));
300296
SemPost(&ptr->full, __func__);
301297

302298
if (func == TERMINATE) {
303-
SemPost(&ptr->responseSync[response_index], __func__);
299+
SemPost(&ptr->responseSync[responseId], __func__);
304300
break;
305301
}
306302

307303
switch (func) {
308304
case OPEN:
309-
OpenResponse(buf);
305+
OpenResponse(buf + sizeof(responseId));
310306
break;
311307
case CLOSE:
312-
CloseResponse(buf);
308+
CloseResponse(buf + sizeof(responseId));
313309
break;
314310
case COUNT:
315311
CountResponse(buf);
316312
break;
317313
case GETITER:
318-
GetIterResponse(buf);
314+
GetIterResponse(buf + sizeof(responseId));
319315
break;
320316
case DELITER:
321-
DelIterResponse(buf);
317+
DelIterResponse(buf + sizeof(responseId));
322318
break;
323319
case NEXT:
324320
NextResponse(buf);
@@ -327,16 +323,16 @@ static void KVWorkerMain(int argc, char *argv[]) {
327323
GetResponse(buf);
328324
break;
329325
case PUT:
330-
PutResponse(buf);
326+
PutResponse(buf + sizeof(responseId));
331327
break;
332328
case DELETE:
333-
DeleteResponse(buf);
329+
DeleteResponse(buf + sizeof(responseId));
334330
break;
335331
default:
336332
ereport(ERROR, (errmsg("%s failed in switch", __func__)));
337333
}
338334

339-
SemPost(&ptr->responseSync[response_index], __func__);
335+
SemPost(&ptr->responseSync[responseId], __func__);
340336
} while (true);
341337

342338
HASH_SEQ_STATUS status;

0 commit comments

Comments
 (0)