mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
ST: Research adds examples that demos pthread and helloworld. v6.0.118 (#3989)
1. `trunk/research/st/exceptions.cpp` About exceptions with ST, works well on linux and mac, not work on cygwin. 2. `trunk/research/st/pthreads.cpp` About pthreads with ST, works well on all platforms. 3. `trunk/research/st/hello.cpp` Hello world, without ST, works well on all platforms. 4. `trunk/research/st/hello-world.cpp` Hello world, with ST, works well on all platforms. 5. `trunk/research/st/hello-st.cpp` A very simple version for hello world with ST, works well on all platforms.
This commit is contained in:
parent
ce2ce1542f
commit
ff91757a3a
7 changed files with 113 additions and 1 deletions
|
@ -7,6 +7,7 @@ The changelog for SRS.
|
||||||
<a name="v6-changes"></a>
|
<a name="v6-changes"></a>
|
||||||
|
|
||||||
## SRS 6.0 Changelog
|
## SRS 6.0 Changelog
|
||||||
|
* v6.0, 2024-03-24, Merge [#3989](https://github.com/ossrs/srs/pull/3989): ST: Research adds examples that demos pthread and helloworld. v6.0.118 (#3989)
|
||||||
* v6.0, 2024-03-19, Merge [#3958](https://github.com/ossrs/srs/pull/3958): Add a TCP proxy for debugging. v6.0.117 (#3958)
|
* v6.0, 2024-03-19, Merge [#3958](https://github.com/ossrs/srs/pull/3958): Add a TCP proxy for debugging. v6.0.117 (#3958)
|
||||||
* v6.0, 2024-03-20, Merge [#3964](https://github.com/ossrs/srs/pull/3964): WebRTC: Add support for A/V only WHEP/WHEP player. v6.0.116 (#3964)
|
* v6.0, 2024-03-20, Merge [#3964](https://github.com/ossrs/srs/pull/3964): WebRTC: Add support for A/V only WHEP/WHEP player. v6.0.116 (#3964)
|
||||||
* v6.0, 2024-03-19, Merge [#3990](https://github.com/ossrs/srs/pull/3990): System: Disable feature that obtains versions and check features status. v6.0.115 (#3990)
|
* v6.0, 2024-03-19, Merge [#3990](https://github.com/ossrs/srs/pull/3990): System: Disable feature that obtains versions and check features status. v6.0.115 (#3990)
|
||||||
|
|
29
trunk/research/st/exceptions.cpp
Normal file
29
trunk/research/st/exceptions.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
# !!! ST does not support C++ exceptions on cygwin !!!
|
||||||
|
g++ exceptions.cpp ../../objs/st/libst.a -g -O0 -o exceptions && ./exceptions
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <exception>
|
||||||
|
#include "../../objs/st/st.h"
|
||||||
|
|
||||||
|
int handle_exception() {
|
||||||
|
try {
|
||||||
|
throw 3;
|
||||||
|
} catch (...) {
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void* foo(void* arg) {
|
||||||
|
int r0 = handle_exception();
|
||||||
|
printf("r0=%d\n", r0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
st_init();
|
||||||
|
st_thread_create(foo, NULL, 0, 0);
|
||||||
|
st_thread_exit(NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
16
trunk/research/st/hello-st.cpp
Normal file
16
trunk/research/st/hello-st.cpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
g++ hello-st.cpp ../../objs/st/libst.a -g -O0 -o hello-st && ./hello-st
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "../../objs/st/st.h"
|
||||||
|
|
||||||
|
void foo() {
|
||||||
|
st_init();
|
||||||
|
st_sleep(1);
|
||||||
|
printf("Hello World, ST!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
foo();
|
||||||
|
return 0;
|
||||||
|
}
|
19
trunk/research/st/hello-world.cpp
Normal file
19
trunk/research/st/hello-world.cpp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
g++ hello-world.cpp ../../objs/st/libst.a -g -O0 -o hello-world && ./hello-world
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "../../objs/st/st.h"
|
||||||
|
|
||||||
|
void foo() {
|
||||||
|
st_init();
|
||||||
|
|
||||||
|
for (int i = 0; ; i++) {
|
||||||
|
st_sleep(1);
|
||||||
|
printf("#%d: main: working\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
foo();
|
||||||
|
return 0;
|
||||||
|
}
|
11
trunk/research/st/hello.cpp
Normal file
11
trunk/research/st/hello.cpp
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
g++ hello.cpp -g -O0 -o hello && ./hello
|
||||||
|
*/
|
||||||
|
|
||||||
|
void foo() {
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
foo();
|
||||||
|
return 0;
|
||||||
|
}
|
36
trunk/research/st/pthreads.cpp
Normal file
36
trunk/research/st/pthreads.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
Directly compile c++ source and execute:
|
||||||
|
g++ pthreads.cpp ../../objs/st/libst.a -g -O0 -o pthreads && ./pthreads
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include "../../objs/st/st.h"
|
||||||
|
|
||||||
|
void* foo(void* arg) {
|
||||||
|
while (true) {
|
||||||
|
printf("Hello, child thread\n");
|
||||||
|
st_sleep(1);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* pfn(void* arg) {
|
||||||
|
st_init();
|
||||||
|
st_thread_create(foo, NULL, 0, 0);
|
||||||
|
st_thread_exit(NULL);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
st_init();
|
||||||
|
|
||||||
|
pthread_t trd;
|
||||||
|
pthread_create(&trd, NULL, pfn, NULL);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
printf("Hello, main thread\n");
|
||||||
|
st_sleep(1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
|
|
||||||
#define VERSION_MAJOR 6
|
#define VERSION_MAJOR 6
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_REVISION 117
|
#define VERSION_REVISION 118
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue