Commit Graph

4236 Commits

Author SHA1 Message Date
gingerBill
b04bc21ec6 Merge pull request #704 from oskarnp/log_thread_id
Add .Thread_Id option to log package
2020-07-22 22:27:53 +01:00
Oskar Nordquist
36cac87387 Add .Thread_Id option to log package 2020-07-22 17:42:01 +02:00
Oskar Nordquist
a7e38dc063 Implement os.current_thread_id() for Darwin (assumes OSX 10.6 / iOS 3.2 and later) 2020-07-22 17:38:13 +02:00
gingerBill
3a1492fc99 Add sync.Wait_Group 2020-07-15 00:25:37 +01:00
gingerBill
7ae54ae3b4 Add -no-dynamic-literals to disallow dynamic array and map literals 2020-07-14 23:01:34 +01:00
gingerBill
b2beb9512f Add thread.join_multiple 2020-07-14 21:08:04 +01:00
gingerBill
96ad6d2084 Improve sync.Channel behaviour 2020-07-14 18:43:50 +01:00
gingerBill
6565a49e34 Remove fmt from sync/channel.odin 2020-07-14 16:39:47 +01:00
gingerBill
ce85b73eca Add sync.Once 2020-07-14 16:38:54 +01:00
gingerBill
fc65aee307 Update sync.Channel 2020-07-14 16:37:29 +01:00
jharler
f9a6777e3a Added "sep" parameter to logging procs 2020-07-13 08:22:41 -04:00
Clay Murray
83eabe2140 Fix pthread_t on Macos.
From some testing with directly using C code, pthread_t on macos is 8 bytes.
This is my test code:

```
#include <assert.h>
#include <stdio.h>

#include <pthread.h>



void* PosixThreadMainRoutine(void* data)

{

	// Do some work here.
	for (int i = 0; i < 2000000000; i++) {

	}



	return NULL;

}



pthread_t LaunchThread()

{

	// Create the thread using POSIX routines.

	pthread_attr_t  attr;

	pthread_t       posixThreadID;

	int             returnVal;



	returnVal = pthread_attr_init(&attr);

	assert(!returnVal);

	returnVal = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);

	assert(!returnVal);



	int     threadError = pthread_create(&posixThreadID, &attr, &PosixThreadMainRoutine, NULL);



	returnVal = pthread_attr_destroy(&attr);

	assert(!returnVal);

	if (threadError != 0)

	{

		// Report an error.

	}

	return posixThreadID;

}

int main() {
	pthread_t t = LaunchThread();

	void ** ret;


	printf("%d, %d\n", sizeof(t), sizeof(pthread_t));

	int val = pthread_join(t, ret);


	printf("%d", val);
	return 0;
}
```
running this on macos reports `8, 8`. 
Then I made the proposed changes and errors I was having with threads completely went away.
2020-07-11 18:22:56 -06:00
gingerBill
c4067372dd Fix double declaration 2020-07-10 22:28:48 +01:00
gingerBill
b4e976364a Add path_unix.odin 2020-07-10 08:42:59 +01:00
gingerBill
642afa4f88 Fix new package path 2020-07-10 08:42:22 +01:00
gingerBill
f65fa0e4a6 Merge pull request #339 from dotbmp/master
"core:path" Path library and "core:strings" `split` Utilities
2020-07-10 08:25:24 +01:00
gingerBill
65b9dbe13f Clean-up OS constants; Clean-up procs_wasm32.odin 2020-07-09 17:21:40 +01:00
gingerBill
94ba182691 Add sync.Benaphore 2020-07-08 23:16:54 +01:00
gingerBill
5b7c83d871 Add strings.pop_byte strings.pop_rune 2020-07-08 23:15:48 +01:00
gingerBill
4059542afb Merge pull request #673 from kevinw/patch-2
add `#config` to odin parser
2020-07-08 23:08:31 +01:00
Mikkel Hjortshoej
d749f5c704 Fix typo 2020-07-02 16:13:49 +02:00
Mikkel Hjortshoej
83f553cd89 Revert to old format and fix : when no file opt specified 2020-07-02 16:11:41 +02:00
Mikkel Hjortshoej
730f9ee0b3 Fix misplaced line number (was wrongly formatted and before procedure) 2020-07-02 15:31:40 +02:00
gingerBill
51e50d3e31 Add intrinsics.type_proc_parameter_type; Add intrinsics.type_proc_return_type 2020-07-01 22:35:38 +01:00
gingerBill
92363da58e Add -show-system-calls; Update runtime for windows_386; Fix some minor bugs 2020-06-30 10:09:58 +01:00
gingerBill
0ea64182f1 Begin work on windows 386 2020-06-29 17:35:33 +01:00
gingerBill
8478b887a5 Add mem.check_zero and mem.check_zero_ptr 2020-06-29 16:17:40 +01:00
gingerBill
86448ee044 Add raw_data to replace cases in which &x[0] was used 2020-06-29 15:58:24 +01:00
gingerBill
56a52a1d06 Add sync.condition_wait_for_timeout for unix 2020-06-27 12:21:31 +01:00
gingerBill
858c5f8fd8 Update thread_unix logic 2020-06-27 11:36:48 +01:00
gingerBill
f92b4c7849 Update sys/unix; Rename thread.create_and_start 2020-06-27 11:26:38 +01:00
gingerBill
9fdebebd28 Add sync.Barrier; Add sync.Blocking_Mutex for unix 2020-06-27 11:23:37 +01:00
gingerBill
2b18f43b65 Update sys/windows; Add sync.Blocking_Mutex (windows only at the moment) 2020-06-27 00:59:40 +01:00
gingerBill
53e1512978 Add more exception handling stuff to sys/windows 2020-06-26 20:42:17 +01:00
gingerBill
b5f9c95ce7 Remove foreign import for -vet 2020-06-26 20:33:47 +01:00
gingerBill
231f91304a Keep previous behaviour for sync but move to sys/windows 2020-06-26 20:30:33 +01:00
gingerBill
d7b3f3a0e7 Revert sync_windows.odin 2020-06-26 20:22:48 +01:00
gingerBill
bb81d4869f Update sys/windows 2020-06-26 20:09:31 +01:00
gingerBill
b633a42bc2 Revert channel.odin 2020-06-26 19:16:17 +01:00
gingerBill
6bd05ef5d7 Begin migration from sys/win32 to sys/windows 2020-06-26 19:11:34 +01:00
gingerBill
251a3a690e Add optional sep parameter to fmt.*print and fmt.*println procedures 2020-06-25 15:00:50 +01:00
gingerBill
a6edcf4f18 Fix ABI typo bug; Add pop_safe and pop_front_safe 2020-06-22 21:03:57 +01:00
gingerBill
2a598aa061 Update sync.Channel 2020-06-22 17:45:01 +01:00
gingerBill
2b27300387 Fix LLVM code gen bug 2020-06-22 16:57:21 +01:00
gingerBill
0db1ebb4e5 -vet sync/channel.odin 2020-06-22 16:01:26 +01:00
gingerBill
f00123742c Add experimental sync.Channel 2020-06-22 15:54:35 +01:00
gingerBill
509e8b512f Add time.read_cycle_counter 2020-06-22 15:54:19 +01:00
gingerBill
2562df5387 Remove unused imports in thread.odin 2020-06-22 13:35:44 +01:00
gingerBill
0ab356aa4e Fix sync and thread on *nix 2020-06-22 13:32:58 +01:00
gingerBill
b3c51a8b44 Add thread.run* shorthand procedures; Thread.init_context use new Maybe concept 2020-06-22 13:28:37 +01:00