LSF-Base

 view release on metacpan or  search on metacpan

Base.xs  view on Meta::CPAN

    PREINIT:
	LSF_Base_rusage *ru;
	LS_WAIT_T status;
	int tid;
	SV *rv;
    PPCODE:
	ru = safemalloc(sizeof(LSF_Base_rusage));
	tid = ls_rwait(&status, options, ru);
	if( tid < 0 ){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
           XSRETURN_EMPTY;
        }
	STATUS_NATIVE_SET(status);
	XPUSHs(sv_2mortal(newSViv(tid)));
	rv = newRV_inc(&PL_sv_undef);
	sv_setref_iv(rv, "LSF::Base::rusagePtr",(IV)ru);
	XPUSHs(sv_2mortal(rv));
	XSRETURN(2);

void
ls_rwaittid(self, tid, options)
	void	*self
	int	tid
	int	options
    PREINIT:
	LSF_Base_rusage *ru;
	LS_WAIT_T status;
	SV *rv;
    PPCODE:
	ru = safemalloc(sizeof(LSF_Base_rusage));
	tid = ls_rwaittid(tid, &status, options, ru);
	if( tid < 0 ){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
	   XSRETURN_UNDEF;
	}
	STATUS_NATIVE_SET(status);
	rv = newRV_inc(&PL_sv_undef);
	sv_setref_iv(rv, "LSF::Base::rusagePtr",(IV)ru);
	XPUSHs(sv_2mortal(rv));
	XSRETURN(1);


int 
ls_rkill(self, tid, sig)
	void	*self
	int	tid
	int	sig
    CODE:
	if( ls_rkill(tid, sig) < 0 ){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
           RETVAL = 0;
        }
        RETVAL = 1;
    OUTPUT:
	RETVAL

int
ls_rsetenv(self, host, envp)
	void	*self
	char	*host
	char 	**envp
    CODE:
	if(ls_rsetenv(host, envp) < 0 ){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
	   RETVAL = 0;
	}
	RETVAL = 1;
    OUTPUT:
	RETVAL

int 
ls_chdir(self, host, clntdir)
	void	*self	
	char 	*host
	char 	*clntdir
   CODE:
	if(ls_chdir(host, clntdir) < 0){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
	   RETVAL = 0;
	}
	else
	   RETVAL = 1;
    OUTPUT:
	RETVAL

int
ls_stdinmode(self, remote)
	void	*self;
	int	remote;
    CODE:
	if( ls_stdinmode(remote) < 0 ){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
	   RETVAL = 0;
	}
        else
	   RETVAL = 1;
    OUTPUT:
	RETVAL

void
ls_getstdin(self, on, max)
	void	*self;
	int	on;
	int	max;
   PREINIT:
	int	*tidlist;
	int	i, count;
   PPCODE:
	tidlist = safemalloc(sizeof(int)*max);
	if( count = ls_getstdin(on, tidlist, max) < 0 ){
	   STATUS_NATIVE_SET(lserrno);
	   SET_LSF_ERRMSG;
	   XSRETURN_UNDEF;
	}
	for( i = 0; i < count; i++){
	   XPUSHs(sv_2mortal(newSViv(tidlist[i])));
	}
	safefree(tidlist);
	XSRETURN(count);



( run in 0.790 second using v1.01-cache-2.11-cpan-2398b32b56e )