File indexing completed on 2025-05-11 08:24:41
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #if !defined(OPERATION_COUNT)
0029 #define OPERATION_COUNT 100
0030 #endif
0031
0032 #ifdef HAVE_CONFIG_H
0033 #include "config.h"
0034 #endif
0035
0036 #include <pthread.h>
0037 #include <timesys.h>
0038 #include <tmacros.h>
0039 #include <rtems/btimer.h>
0040 #include "test_support.h"
0041
0042 const char rtems_test_name[] = "PSXTMCLEANUP01";
0043
0044
0045 void *POSIX_Init(void *argument);
0046
0047 int status = 1;
0048
0049 static void routine(void *arg)
0050 {
0051 }
0052
0053 static void benchmark_pthread_cleanup_push_pull(void)
0054 {
0055 benchmark_timer_t end_time;
0056 int execute = 1;
0057 status = 0;
0058
0059 benchmark_timer_initialize();
0060 pthread_cleanup_push(routine, NULL);
0061 end_time = benchmark_timer_read();
0062 rtems_test_assert( status == 0 );
0063 put_time(
0064 "pthread_cleanup_push : only case",
0065 end_time,
0066 1,
0067 0,
0068 0
0069 );
0070
0071 benchmark_timer_initialize();
0072 pthread_cleanup_pop( execute );
0073 end_time = benchmark_timer_read();
0074 rtems_test_assert( status == 0 );
0075 put_time(
0076 "pthread_cleanup_pop : only case",
0077 end_time,
0078 1,
0079 0,
0080 0
0081 );
0082
0083 }
0084
0085 void *POSIX_Init(
0086 void *argument
0087 )
0088 {
0089
0090 TEST_BEGIN();
0091
0092 benchmark_pthread_cleanup_push_pull();
0093
0094 TEST_END();
0095 rtems_test_exit(0);
0096 }
0097
0098
0099
0100 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0101 #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
0102
0103 #define CONFIGURE_MAXIMUM_POSIX_THREADS 1
0104 #define CONFIGURE_POSIX_INIT_THREAD_TABLE
0105
0106 #define CONFIGURE_INIT
0107
0108 #include <rtems/confdefs.h>
0109