[LTP] [PATCH] crypto/af_alg02: use pthread_tryjoin_np() instead of pthread_kill()
Li Wang
liwang@redhat.com
Fri Jul 16 15:12:48 CEST 2021
Alexey Kodanev <aleksei.kodanev@bell-sw.com> wrote:
>
> > Maybe another workaround is to define a volatile flag 'thread_complete',
> > initialize it to '0' when thread_B starts and reset to '1' while exit,
> and just
> > do a value check in the while loop of thread_A should acquire thread_B
> status.
> > Is this way a bit better?
>
> OK, why not, so something like this:
>
> diff --git a/testcases/kernel/crypto/af_alg02.c
> b/testcases/kernel/crypto/af_alg02.c
> index 0f5793c16..1fe0f3bf0 100644
> --- a/testcases/kernel/crypto/af_alg02.c
> +++ b/testcases/kernel/crypto/af_alg02.c
> @@ -18,11 +18,13 @@
> #include "tst_test.h"
> #include "tst_af_alg.h"
> #include "tst_safe_pthread.h"
> +#include "tst_atomic.h"
> #include <pthread.h>
> #include <errno.h>
>
> #define SALSA20_IV_SIZE 8
> #define SALSA20_MIN_KEY_SIZE 16
> +static int completed;
>
> static void *verify_encrypt(void *arg)
> {
> @@ -48,6 +50,8 @@ static void *verify_encrypt(void *arg)
> tst_res(TPASS, "Successfully \"encrypted\" an empty
> message");
> else
> tst_res(TFAIL, "read() didn't return 0");
> +
> + tst_atomic_store(1, &completed);
> return arg;
> }
>
> @@ -60,7 +64,7 @@ static void run(void)
>
> TST_CHECKPOINT_WAIT(0);
>
> - while (pthread_tryjoin_np(thr, NULL) == EBUSY) {
> + while (!tst_atomic_load(&completed)) {
>
+1
The atomic method is quite awesome!
--
Regards,
Li Wang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20210716/e43fce96/attachment.htm>
More information about the ltp
mailing list