Add macro "SHMEMQ_DELETE"

This commit is contained in:
Alex Kotov 2020-12-15 12:22:52 +05:00
parent b3ac161fc6
commit c1294fd878
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
9 changed files with 46 additions and 24 deletions

View File

@ -76,7 +76,7 @@ int main()
printf("Destroy queue.\n");
shmemq_delete(shmemq, NULL);
SHMEMQ_DELETE(shmemq, NULL);
return 0;
}

View File

@ -90,7 +90,7 @@ int main()
finalize:
printf("Destroy queue.\n");
shmemq_delete(shmemq, NULL);
SHMEMQ_DELETE(shmemq, NULL);
return 0;
}

View File

@ -4,6 +4,11 @@
#include <stdbool.h>
#include <stddef.h>
#define SHMEMQ_DELETE(shmemq, error_ptr) { \
shmemq_delete(shmemq, error_ptr); \
shmemq = NULL; \
}
#define SHMEMQ_NAME_SIZE_MAX ((size_t)255)
#define SHMEMQ_NAME_SLEN_MAX (SHMEMQ_NAME_SIZE_MAX - 1)

View File

@ -4,14 +4,17 @@
static const char name[] = "/foobar";
static Shmemq consumer = NULL;
static Shmemq producer = NULL;
int main()
{
ShmemqError error;
const Shmemq consumer = shmemq_new(name, true, &error);
consumer = shmemq_new(name, true, &error);
assert(error == SHMEMQ_ERROR_NONE);
const Shmemq producer = shmemq_new(name, false, &error);
producer = shmemq_new(name, false, &error);
assert(error == SHMEMQ_ERROR_NONE);
assert(shmemq_pop_start(consumer) == NULL);
@ -19,10 +22,10 @@ int main()
shmemq_pop_end(consumer, &error);
assert(error == SHMEMQ_ERROR_BUG_POP_END_ON_EMPTY_QUEUE);
shmemq_delete(consumer, &error);
SHMEMQ_DELETE(consumer, &error);
assert(error == SHMEMQ_ERROR_NONE);
shmemq_delete(producer, &error);
SHMEMQ_DELETE(producer, &error);
assert(error == SHMEMQ_ERROR_NONE);
return 0;

View File

@ -4,14 +4,17 @@
static const char name[] = "/foobar";
static Shmemq consumer = NULL;
static Shmemq producer = NULL;
int main()
{
ShmemqError error;
const Shmemq consumer = shmemq_new(name, true, &error);
consumer = shmemq_new(name, true, &error);
assert(error == SHMEMQ_ERROR_NONE);
const Shmemq producer = shmemq_new(name, false, &error);
producer = shmemq_new(name, false, &error);
assert(error == SHMEMQ_ERROR_NONE);
for (unsigned i = 0; i < 25; ++i) {
@ -39,10 +42,10 @@ int main()
shmemq_pop_end(consumer, &error);
assert(error == SHMEMQ_ERROR_BUG_POP_END_ON_EMPTY_QUEUE);
shmemq_delete(consumer, &error);
SHMEMQ_DELETE(consumer, &error);
assert(error == SHMEMQ_ERROR_NONE);
shmemq_delete(producer, &error);
SHMEMQ_DELETE(producer, &error);
assert(error == SHMEMQ_ERROR_NONE);
return 0;

View File

@ -7,6 +7,8 @@
static const char name[] = "/foobar";
static const char hello_world_str[] = "Hello, World!";
static Shmemq producer_shmemq = NULL;
int main()
{
ShmemqError error;
@ -28,7 +30,7 @@ int main()
assert(consumer_shmemq.buffer->header.read_frame_index == 0);
assert(consumer_shmemq.buffer->header.write_frame_index == 0);
const Shmemq producer_shmemq = shmemq_new(name, false, &error);
producer_shmemq = shmemq_new(name, false, &error);
assert(producer_shmemq != NULL);
assert(error == SHMEMQ_ERROR_NONE);
@ -166,7 +168,7 @@ int main()
shmemq_finish(&consumer_shmemq, &error);
assert(error == SHMEMQ_ERROR_NONE);
shmemq_delete(producer_shmemq, &error);
SHMEMQ_DELETE(producer_shmemq, &error);
assert(error == SHMEMQ_ERROR_NONE);
return 0;

View File

@ -4,14 +4,17 @@
static const char name[] = "/foobar";
static Shmemq consumer = NULL;
static Shmemq producer = NULL;
int main()
{
ShmemqError error;
const Shmemq consumer = shmemq_new(name, true, &error);
consumer = shmemq_new(name, true, &error);
assert(error == SHMEMQ_ERROR_NONE);
const Shmemq producer = shmemq_new(name, false, &error);
producer = shmemq_new(name, false, &error);
assert(error == SHMEMQ_ERROR_NONE);
for (unsigned i = 0; i < 100; ++i) {
@ -50,10 +53,10 @@ int main()
shmemq_push_end(producer, 9, &error);
assert(error == SHMEMQ_ERROR_BUG_PUSH_END_OVERFLOW);
shmemq_delete(consumer, &error);
SHMEMQ_DELETE(consumer, &error);
assert(error == SHMEMQ_ERROR_NONE);
shmemq_delete(producer, &error);
SHMEMQ_DELETE(producer, &error);
assert(error == SHMEMQ_ERROR_NONE);
return 0;

View File

@ -4,14 +4,17 @@
static const char name[] = "/foobar";
static Shmemq consumer = NULL;
static Shmemq producer = NULL;
int main()
{
ShmemqError error;
const Shmemq consumer = shmemq_new(name, true, &error);
consumer = shmemq_new(name, true, &error);
assert(error == SHMEMQ_ERROR_NONE);
const Shmemq producer = shmemq_new(name, false, &error);
producer = shmemq_new(name, false, &error);
assert(error == SHMEMQ_ERROR_NONE);
for (unsigned i = 0; i < 100; ++i) {
@ -49,10 +52,10 @@ int main()
shmemq_push_end(producer, sizeof(unsigned), &error);
assert(error == SHMEMQ_ERROR_BUG_PUSH_END_ON_FULL_QUEUE);
shmemq_delete(consumer, &error);
SHMEMQ_DELETE(consumer, &error);
assert(error == SHMEMQ_ERROR_NONE);
shmemq_delete(producer, &error);
SHMEMQ_DELETE(producer, &error);
assert(error == SHMEMQ_ERROR_NONE);
return 0;

View File

@ -4,14 +4,17 @@
static const char name[] = "/foobar";
static Shmemq consumer = NULL;
static Shmemq producer = NULL;
int main()
{
ShmemqError error;
const Shmemq consumer = shmemq_new(name, true, &error);
consumer = shmemq_new(name, true, &error);
assert(error == SHMEMQ_ERROR_NONE);
const Shmemq producer = shmemq_new(name, false, &error);
producer = shmemq_new(name, false, &error);
assert(error == SHMEMQ_ERROR_NONE);
for (unsigned i = 0; i < 100; ++i) {
@ -29,10 +32,10 @@ int main()
shmemq_push_end(producer, sizeof(unsigned), &error);
assert(error == SHMEMQ_ERROR_BUG_PUSH_END_ON_FULL_QUEUE);
shmemq_delete(consumer, &error);
SHMEMQ_DELETE(consumer, &error);
assert(error == SHMEMQ_ERROR_NONE);
shmemq_delete(producer, &error);
SHMEMQ_DELETE(producer, &error);
assert(error == SHMEMQ_ERROR_NONE);
return 0;