multithreating HOWTO ? :)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All.
I'm trying to start writing multithread programs with assembler (no pthreads), i want to just ask what is wrong in folowing simple code:


.section .data

signal1:
.quad	1

signal2:
.quad	1

x:
.quad	0

y:
.quad	0

.section .text
.globl _start
_start:
    nop
    movq	$2,%rax           # sys_fork
    xorq	%rbx,%rbx
    int		$0x80
    
    cmpq	$0,%rax
    jl		end
    
    cmpq	$0,%rax
    jg		parent            # jump if parent
    

child:
    movq	$100,x
    movq	$0,signal1

1:	
    cmpq	$0,signal2
    jnz		1b
    jmp 	end


parent:
    movq	$100,y
    movq	$0,signal2

1:	
    cmpq	$0,signal1
    jnz		1b            # INF. LOOP ?
    
end:
    movq        x,%rbx
    addq        y,%rby
    movq	$1,%rax
    int		$0x80

Program stacks at parent part in infinite loop waiting for "signal1" change to 0. Anybody knows how to write it properly with using two threads? Thanks in advance.

Lukas


      
--
To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Linux C Programming]     [Linux for Hams]     [DCCP]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux