Changes in / [dab98b3e:c8c0c7c5]
- Files:
-
- 6 edited
-
libcfa/src/concurrency/coroutine.cfa (modified) (1 diff)
-
libcfa/src/concurrency/invoke.h (modified) (2 diffs)
-
libcfa/src/concurrency/kernel.cfa (modified) (3 diffs)
-
libcfa/src/concurrency/preemption.cfa (modified) (4 diffs)
-
libcfa/src/heap.cfa (modified) (4 diffs)
-
tests/linking/withthreads.cfa (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/coroutine.cfa
rdab98b3e rc8c0c7c5 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Dec 5 14:37:29201913 // Update Count : 1 512 // Last Modified On : Sat Nov 30 09:59:36 2019 13 // Update Count : 14 14 14 // 15 15 -
libcfa/src/concurrency/invoke.h
rdab98b3e rc8c0c7c5 10 10 // Created On : Tue Jan 17 12:27:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Dec 5 16:26:03201913 // Update Count : 4 412 // Last Modified On : Wed Dec 4 08:05:32 2019 13 // Update Count : 43 14 14 // 15 15 … … 51 51 52 52 struct { 53 void * stack; 53 54 volatile unsigned short disable_count; 54 55 volatile bool enabled; -
libcfa/src/concurrency/kernel.cfa
rdab98b3e rc8c0c7c5 10 10 // Created On : Tue Jan 17 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Dec 5 16:25:52201913 // Update Count : 5212 // Last Modified On : Tue Dec 3 21:46:54 2019 13 // Update Count : 49 14 14 // 15 15 … … 135 135 NULL, // cannot use 0p 136 136 NULL, 137 { 1, false, false },137 { NULL, 1, false, false }, 138 138 6u //this should be seeded better but due to a bug calling rdtsc doesn't work 139 139 }; … … 453 453 454 454 size_t stacksize; 455 // default stack size, normally defined by shell limit455 // default stack size, normally defined by shell limit 456 456 Abort( pthread_attr_getstacksize( &attr, &stacksize ), "pthread_attr_getstacksize" ); 457 457 assert( stacksize >= PTHREAD_STACK_MIN ); 458 458 459 void * stack; 460 __cfaabi_dbg_debug_do( 461 stack = memalign( __page_size, stacksize + __page_size ); 462 // pthread has no mechanism to create the guard page in user supplied stack. 463 if ( mprotect( stack, __page_size, PROT_NONE ) == -1 ) { 464 abort( "mprotect : internal error, mprotect failure, error(%d) %s.", errno, strerror( errno ) ); 465 } // if 466 ); 467 __cfaabi_dbg_no_debug_do( 468 stack = malloc( stacksize ); 469 ); 459 #ifdef __CFA_DEBUG__ 460 void * stack = memalign( __page_size, stacksize + __page_size ); 461 // pthread has no mechanism to create the guard page in user supplied stack. 462 if ( mprotect( stack, __page_size, PROT_NONE ) == -1 ) { 463 abort( "mprotect : internal error, mprotect failure, error(%d) %s.", errno, strerror( errno ) ); 464 } // if 465 #else 466 void * stack = malloc( stacksize ); 467 #endif 470 468 471 469 Abort( pthread_attr_setstack( &attr, stack, stacksize ), "pthread_attr_setstack" ); -
libcfa/src/concurrency/preemption.cfa
rdab98b3e rc8c0c7c5 10 10 // Created On : Mon Jun 5 14:20:42 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Dec 5 16:34:05201913 // Update Count : 4 312 // Last Modified On : Sun Dec 1 22:22:56 2019 13 // Update Count : 41 14 14 // 15 15 … … 65 65 event_kernel_t * event_kernel; // kernel public handle to even kernel 66 66 static pthread_t alarm_thread; // pthread handle to alarm thread 67 static void * alarm_stack; // pthread stack for alarm thread68 67 69 68 static void ?{}(event_kernel_t & this) with( this ) { … … 307 306 signal_block( SIGALRM ); 308 307 309 alarm_stack = create_pthread( &alarm_thread, alarm_loop, 0p );308 kernelTLS.preemption_state.stack = create_pthread( &alarm_thread, alarm_loop, 0p ); 310 309 } 311 310 … … 327 326 328 327 pthread_join( alarm_thread, 0p ); 329 free( alarm_stack );328 free( kernelTLS.preemption_state.stack ); 330 329 331 330 // Preemption is now fully stopped -
libcfa/src/heap.cfa
rdab98b3e rc8c0c7c5 10 10 // Created On : Tue Dec 19 21:58:35 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Dec 4 21:42:46201913 // Update Count : 64 612 // Last Modified On : Tue Dec 3 13:58:44 2019 13 // Update Count : 642 14 14 // 15 15 … … 35 35 static bool traceHeap = false; 36 36 37 inline bool traceHeap() { return traceHeap; } 37 inline bool traceHeap() { 38 return traceHeap; 39 } // traceHeap 38 40 39 41 bool traceHeapOn() { … … 48 50 return temp; 49 51 } // traceHeapOff 50 51 bool traceHeapTerm() { return false; }52 52 53 53 … … 694 694 static void ^?{}( HeapManager & ) { 695 695 #ifdef __STATISTICS__ 696 if ( traceHeapTerm() ) {697 printStats();698 //if ( prtfree() ) prtFree( heapManager, true );699 } // if696 // if ( traceHeapTerm() ) { 697 // printStats(); 698 // if ( prtfree() ) prtFree( heapManager, true ); 699 // } // if 700 700 #endif // __STATISTICS__ 701 701 } // ~HeapManager -
tests/linking/withthreads.cfa
rdab98b3e rc8c0c7c5 34 34 // Local Variables: // 35 35 // tab-width: 4 // 36 // compile-command: "cfa withthreads.cfa" //36 // compile-command: "cfa nothreads.cfa" // 37 37 // End: //
Note:
See TracChangeset
for help on using the changeset viewer.