/*
- * $Id: SimpleServer.xs,v 1.59 2007-04-17 08:06:47 adam Exp $
+ * $Id: SimpleServer.xs,v 1.61 2007-05-23 07:41:08 adam Exp $
* ----------------------------------------------------------------------
*
* Copyright (c) 2000-2004, Index Data.
#include <yaz/wrbuf.h>
#include <yaz/querytowrbuf.h>
#include <stdio.h>
+#include <yaz/mutex.h>
#ifdef WIN32
#else
#include <unistd.h>
#define sv_undef PL_sv_undef
#endif
-NMEM_MUTEX simpleserver_mutex;
+YAZ_MUTEX simpleserver_mutex;
typedef struct {
SV *handle;
int simpleserver_clone(void) {
#ifdef USE_ITHREADS
- nmem_mutex_enter(simpleserver_mutex);
+ yaz_mutex_enter(simpleserver_mutex);
if (1)
{
PerlInterpreter *current = PERL_GET_CONTEXT;
PERL_SET_CONTEXT( perl_interp );
}
}
- nmem_mutex_leave(simpleserver_mutex);
+ yaz_mutex_leave(simpleserver_mutex);
#endif
return 0;
}
void simpleserver_free(void) {
- nmem_mutex_enter(simpleserver_mutex);
+ yaz_mutex_enter(simpleserver_mutex);
if (1)
{
PerlInterpreter *current_interp = PERL_GET_CONTEXT;
perl_free(current_interp);
}
}
- nmem_mutex_leave(simpleserver_mutex);
+ yaz_mutex_leave(simpleserver_mutex);
}
exit(0);
}
r->elements[r->num_elements] = t = (Z_TaggedElement *) odr_malloc(o, sizeof(Z_TaggedElement));
- t->tagType = (int *)odr_malloc(o, sizeof(int));
- *t->tagType = type;
+ t->tagType = odr_intdup(o, type);
t->tagValue = (Z_StringOrNumeric *)
odr_malloc(o, sizeof(Z_StringOrNumeric));
if ((ivalue = atoi(value)))
{
t->tagValue->which = Z_StringOrNumeric_numeric;
- t->tagValue->u.numeric = (int *)odr_malloc(o, sizeof(int));
- *t->tagValue->u.numeric = ivalue;
+ t->tagValue->u.numeric = odr_intdup(o, ivalue);
}
else
{
t->tagValue->which = Z_StringOrNumeric_string;
- t->tagValue->u.string = (char *)odr_malloc(o, strlen(value)+1);
- strcpy(t->tagValue->u.string, value);
+ t->tagValue->u.string = odr_strdup(o, value);
}
t->tagOccurrence = 0;
t->metaData = 0;
}
}
-WRBUF oid2dotted(int *oid)
+WRBUF oid2dotted(Odr_oid *oid)
{
WRBUF buf = wrbuf_alloc();
oid2str(oid, buf);
char *ODR_record;
char *ODR_basename;
char *ODR_errstr;
- int *ODR_oid_buf;
+ Odr_oid *ODR_oid_buf;
WRBUF oid_dotted;
Zfront_handle *zhandle = (Zfront_handle *)handle;
CV* handler_cv = 0;
ptr = SvPV(rep_form, length);
- ODR_oid_buf = (int *)odr_malloc(rr->stream, (MAX_OID + 1) * sizeof(int));
+ ODR_oid_buf = (Odr_oid *)odr_malloc(rr->stream, (MAX_OID + 1) * sizeof(Odr_oid));
if (oid_dotstring_to_oid(ptr, ODR_oid_buf))
{
printf("Net::Z3950::SimpleServer: WARNING: OID structure too long, max length is %d\n", MAX_OID);
}
*argv_buf = NULL;
root_perl_context = PERL_GET_CONTEXT;
- nmem_mutex_create(&simpleserver_mutex);
+ yaz_mutex_create(&simpleserver_mutex);
#if 0
/* only for debugging perl_clone .. */
tst_clones();