summaryrefslogtreecommitdiffstats
path: root/cas_test.c
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2009-11-07 19:21:49 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2009-11-07 19:21:49 +0100
commit7d6c42c89447947de20e4b50390b6c3b3ee8ff9f (patch)
tree8d98aa697fb03ed7d39472bc1222f691c7677f4f /cas_test.c
parent67f57ab2fb7932b1c43ad669e846b425f6fa1f2b (diff)
downloadlock_free-7d6c42c89447947de20e4b50390b6c3b3ee8ff9f.zip
lock_free-7d6c42c89447947de20e4b50390b6c3b3ee8ff9f.tar.gz
cas and container tests
Diffstat (limited to 'cas_test.c')
-rw-r--r--cas_test.c62
1 files changed, 0 insertions, 62 deletions
diff --git a/cas_test.c b/cas_test.c
deleted file mode 100644
index a2b92a6..0000000
--- a/cas_test.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * File : atomic.c
- * Author : Jérémy Zurcher <jeremy@asynk.ch>
- * Date : 01/11/09
- * License :
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#include <stdio.h>
-#include "cas.h"
-
-#define MAKE_LONG_LONG(lo, hi) ((hi)<<32)+(lo)
-
-typedef union pointer {
- struct {
- volatile void *ptr;
- volatile unsigned int count;
- } split;
- volatile unsigned long long concat;
-} pointer_t;
-
-int main( int argc, char*argv[], char*env[] ) {
- int ret;
-
- pointer_t mem, old, new;
-
- mem.split.count = 0;
- old.split.count = 6;
- new.split.count = 666;
- mem.split.ptr = (void*)&argc;
- old.split.ptr = (void*)&argc;
- new.split.ptr = (void*)&argv;
-
- ret = compare_and_swap(&mem.concat, old.concat, new.concat);
- printf("ret %d -> (%d,%X)\n", ret, mem.split.count, (unsigned int)mem.split.ptr);
-
- mem.split.count=6;
- ret = compare_and_swap(&mem.concat, old.concat, new.concat);
- printf("ret %d -> (%d,%X)\n", ret, mem.split.count, (unsigned int)mem.split.ptr);
-
- return 0;
-}
-