我正在使用pthread库来创建两个线程.我使用两个队列在两个线程(生产者 - 消费者)之间传递数据,因此希望有一个互斥锁来同步线程中队列中的push-pops.
但我得到一个编译错误如下:
$ gcc simple-tun.c simple-tun -lpthread
simple-tun.c: In function ‘new_queue’:
simple-tun.c:920:13: error: expected expression before ‘{’ token
Run Code Online (Sandbox Code Playgroud)
我得到错误的函数是:
908 struct queue * new_queue () {
909
910 struct queue * q;
911 q = (struct queue *) malloc (sizeof(struct queue));
912
913 if (q == NULL)
914 return NULL;
915
916
917 q->head = NULL;
918 q->tail = NULL;
919 q->is_empty = 1;
920 q->mutex = PTHREAD_MUTEX_INITIALIZER;
921
922 return q;
923 }
Run Code Online (Sandbox Code Playgroud)
结构队列是:
struct queue { …Run Code Online (Sandbox Code Playgroud) 当您想要以下条件时,是否可以使用 DynamoDB 映射器进行条件写入/更新:如果属性不等于 X,则写入?我想做一个有条件的写,做这样的事情:
DynamoRecord record = mapper.load(DynamoRecord.class, hashKey);
if (record.getSomeAttr() != terminationValue) {
mapper.save(newRecord);
}
Run Code Online (Sandbox Code Playgroud)
该属性始终存在。它可以有多个值并代表一个条件,在该条件之后对记录的更新应该停止。
我阅读了这篇文章和AWS 文档以及一堆其他帖子,但似乎只==支持运算符和存在检查。是否可以!=使用映射器进行条件写入?如果是这样,非常感谢任何指针。
谢谢。
@notionquest 的回答摘要
ComparisonOperator.NE@DynamoDBNativeBoolean获得正确的结果ExpectedAttributeValue(new AttributeValue().withBool(true))。有关详细信息,请参见此处。