Return-Path: X-Original-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Delivered-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0A28D748E for ; Sun, 27 Nov 2011 22:58:08 +0000 (UTC) Received: (qmail 76811 invoked by uid 500); 27 Nov 2011 22:58:07 -0000 Delivered-To: apmail-httpd-modules-dev-archive@httpd.apache.org Received: (qmail 76754 invoked by uid 500); 27 Nov 2011 22:58:06 -0000 Mailing-List: contact modules-dev-help@httpd.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: modules-dev@httpd.apache.org Delivered-To: mailing list modules-dev@httpd.apache.org Received: (qmail 76746 invoked by uid 99); 27 Nov 2011 22:58:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Nov 2011 22:58:06 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of oguzhantopgul@gmail.com designates 209.85.210.173 as permitted sender) Received: from [209.85.210.173] (HELO mail-iy0-f173.google.com) (209.85.210.173) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Nov 2011 22:57:58 +0000 Received: by iakk32 with SMTP id k32so10365002iak.18 for ; Sun, 27 Nov 2011 14:57:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=F1k2MBa+gMbVIwSNq5VzG41O/egjiXGTbLe9S2pcx30=; b=PcmBcWNs+Rym7QCQdtHtxpmFMLjqVP5GngpFwLQ3yVFVR+MkfOVS5/nusSk9k8xan9 DFO+JTJTHDcbIQNUf/EDJA4uAMeLvKreKoJ0eJfREkD83V7rLTmnDIuNcyazDNVJV5GJ 5qEQY0LHmb/qsG72iARIhX425lDTl5BePKWTA= MIME-Version: 1.0 Received: by 10.42.41.143 with SMTP id p15mr21778723ice.9.1322434657065; Sun, 27 Nov 2011 14:57:37 -0800 (PST) Received: by 10.231.207.16 with HTTP; Sun, 27 Nov 2011 14:57:37 -0800 (PST) Date: Mon, 28 Nov 2011 00:57:37 +0200 Message-ID: Subject: Binary Tree Shared Memory Problem From: =?UTF-8?B?T8SfdXpoYW4gVE9QR8OcTA==?= To: modules-dev@httpd.apache.org Content-Type: multipart/mixed; boundary=20cf301d424cf91bc204b2bf4f8d X-Virus-Checked: Checked by ClamAV on apache.org --20cf301d424cf91bc204b2bf4f8d Content-Type: multipart/alternative; boundary=20cf301d424cf91bc004b2bf4f8b --20cf301d424cf91bc004b2bf4f8b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, i'm trying to use a binary that has a main node, and every leaf is also a node that has leaves. So i'm using a struct that's called node and this node has two nodes in it. i defined a struct like typedef struct element{ int IP; int counter; }ELEMENT; typedef struct node { ELEMENT node_element; struct node *left; struct node *right; }NODE; (i attached my code to the mail) i want to add a new node into tree and i use shared memory to hold the entire tree. If the IP of new node is smaller, i put it to he left leaf. If IP of new node is greater, i put it into the right leaf. The right and left leaves are also nodes and they have right and left leaves. Anyway, my point is when i want to insert new nodes, i'm using the apr_shm_baseaddr_get function to get the address and try to insert ner node into it. But when i add another node as a leaf, it also changes the root node. the examle output of the attached code is like this (i'm printing the root node and the right leaf node) 193168221 193168221 they are same. what i'm expecting is 192168221 193168221 Do you have any advices? O=C4=9Fuzhan TOPG=C3=9CL --20cf301d424cf91bc004b2bf4f8b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi,
i'm trying to use a binary that has a main node, and every leaf = is also a node that has leaves.
So i'm using a struct that's cal= led node and this node has two nodes in it.
i defined a struct like

typedef struct element{
=C2=A0=C2=A0=C2=A0= int IP;
=C2=A0=C2=A0=C2=A0 int counter;
}ELEMENT;

typedef str= uct node {
=C2=A0=C2=A0=C2=A0 ELEMENT node_element;
=C2=A0=C2=A0=C2= =A0 struct node *left;
=C2=A0=C2=A0=C2=A0 struct node *right;
}NODE= ;

(i attached my code to the mail)

i want to add a new node into t= ree and i use shared memory to hold the entire tree. If the IP of new node = is smaller, i put it to he left leaf. If IP of new node is greater, i put i= t into the right leaf. The right and left leaves are also nodes and they ha= ve right and left leaves.

Anyway, my point is when i want to insert new nodes, i'm using the = apr_shm_baseaddr_get function to get the address and try to insert ner node= into it. But when i add another node as a leaf, it also changes the root n= ode.

the examle output of the attached code is like this (i'm printing t= he root node and the right leaf node)
193168221
193168221
they are same.
what i'm expecting is
192168221
193168221

Do you have any advices?

O=C4=9Fuzhan TOPG=C3= =9CL
--20cf301d424cf91bc004b2bf4f8b-- --20cf301d424cf91bc204b2bf4f8d Content-Type: text/x-csrc; charset=US-ASCII; name="my_module.c" Content-Disposition: attachment; filename="my_module.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gvinf59x0 I2luY2x1ZGU8dGltZS5oPg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+ DQojaW5jbHVkZSA8aHR0cGQuaD4NCiNpbmNsdWRlIDxodHRwX3Byb3RvY29sLmg+DQojaW5jbHVk ZSA8aHR0cF9jb25maWcuaD4NCiNpbmNsdWRlIDxhcHJfc2htLmg+DQojaW5jbHVkZSA8YXByX2ds b2JhbF9tdXRleC5oPg0KI2luY2x1ZGUgInV0aWxfbXV0ZXguaCINCiNpbmNsdWRlICJodHRwX2xv Zy5oIiAgLy9BUExPR19NQVJLLCBBUExPR19FUlINCiNpbmNsdWRlICJhcHIuaCINCiNpbmNsdWRl ICJhcHJfc3RyaW5ncy5oIg0KI2luY2x1ZGUgImh0dHBfY29yZS5oIg0KI2luY2x1ZGUgImFwX2Nv bmZpZy5oIg0KDQovL05PREUgYW5kIEVMRU1FTlQgc3RydWN0IGRlZmluaXRpb25zDQp0eXBlZGVm IHN0cnVjdCBlbGVtZW50ew0KICAgIGludCBJUDsNCiAgICBpbnQgY291bnRlcjsNCn1FTEVNRU5U Ow0KDQp0eXBlZGVmIHN0cnVjdCBub2RlIHsNCiAgICBFTEVNRU5UIG5vZGVfZWxlbWVudDsgDQog ICAgc3RydWN0IG5vZGUgKmxlZnQ7IA0KICAgIHN0cnVjdCBub2RlICpyaWdodDsgDQp9Tk9ERTsN Cg0KLy9TaGFyZWQgbWVtb3J5IGFuZCBnbG9iYWwgdmFyaWFibGUgZGVmaW5pdGlvbnMNCmFwcl9z aG1fdCAqbXlfc2htOyAgLyogUG9pbnRlciB0byBzaGFyZWQgbWVtb3J5IGJsb2NrICovIC8qIFNo YXJlZCBtZW1vcnkgc3RydWN0dXJlICovDQoNCnN0cnVjdCBub2RlICpuZXdOb2RlKGludCBJUCwg c3RydWN0IG5vZGUgKm5vZGUsIGFwcl9zaG1fdCAqc2htKSB7DQogIG5vZGU9KE5PREUqKWFwcl9z aG1fYmFzZWFkZHJfZ2V0KHNobSk7DQogIG5vZGUtPm5vZGVfZWxlbWVudC5JUD1JUDsNCiAgbm9k ZS0+bm9kZV9lbGVtZW50LmNvdW50ZXI9MTsNCiAgbm9kZS0+bGVmdCA9IE5VTEw7IA0KICBub2Rl LT5yaWdodCA9IE5VTEw7DQogIHJldHVybihub2RlKTsgDQp9IA0KDQpzdHJ1Y3Qgbm9kZSAqaW5z ZXJ0KHN0cnVjdCBub2RlICp0cmVlLCBpbnQgSVAsIGFwcl9zaG1fdCAqc2htKSB7DQogIC8vIDEu IElmIHRoZSB0cmVlIGlzIGVtcHR5LCByZXR1cm4gYSBuZXcsIHNpbmdsZSBub2RlIA0KICBpZiAo dHJlZSA9PSBOVUxMKXsNCiAgcmV0dXJuKG5ld05vZGUoSVAsIHRyZWUsIHNobSkpOw0KICB9DQog IA0KICBlbHNlIA0KICB7IA0KICAgIC8vIDIuIE90aGVyd2lzZSwgcmVjdXIgZG93biB0aGUgdHJl ZSANCiAgICBpZiAoSVAgPCB0cmVlLT5ub2RlX2VsZW1lbnQuSVApIA0KICAgICAgICB0cmVlLT5s ZWZ0ID0gaW5zZXJ0KHRyZWUtPmxlZnQsIElQLCBzaG0pOyANCiAgICBlbHNlIA0KICAgICAgICAN CiAgICAgICAgaWYgKElQID4gdHJlZS0+bm9kZV9lbGVtZW50LklQKSANCiAgICAgICAgICAgICB0 cmVlLT5yaWdodCA9IGluc2VydCh0cmVlLT5yaWdodCwgSVAsIHNobSk7DQogICAgICAgIGVsc2UN CiAgICAgICAgeyAgICAgDQogICAgICAgICAgICBpZiAodHJlZS0+bm9kZV9lbGVtZW50LklQPT1J UCkNCiAgICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KICAgICAgICAgfSAgICAgICAgIA0KICAg IHJldHVybih0cmVlKTsgLy8gcmV0dXJuIHRoZSAodW5jaGFuZ2VkKSBub2RlIHBvaW50ZXIgDQog IH0gDQp9DQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQmluYXJ5IFRyZWUgdmUgRm9ua3NpeW9u bGFyIEJpdHRpLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQpzdGF0aWMgaW50IG15X3Bvc3RfY29uZmln KGFwcl9wb29sX3QgKnBjb25mLCBhcHJfcG9vbF90ICpwbG9nLCBhcHJfcG9vbF90ICpwdGVtcCwg c2VydmVyX3JlYyAqcyl7DQogICAgYXByX3N0YXR1c190IHJzOw0KICAgIA0KICAgIC8vU2hhcmVk IE1lbW9yeSBzZWdtZW50DQogICAgcnMgPSBhcHJfc2htX2NyZWF0ZSgmbXlfc2htLCBzaXplb2Yo Tk9ERSksIE5VTEwsIHBjb25mKTsNCiAgICAgICANCiAgICANCiAgICBhcHJfcG9vbF9jbGVhbnVw X3JlZ2lzdGVyKHBjb25mLCBOVUxMLCBzaG1fY2xlYW51cF93cmFwcGVyLCBhcHJfcG9vbF9jbGVh bnVwX251bGwpOw0KICAgIHJldHVybiBPSzsNCn0NCg0Kc3RhdGljIGludCBteV9oYW5kbGVyKHJl cXVlc3RfcmVjICpyKQ0Kew0KICAgYXByX3N0YXR1c190IHJzOw0KICAgDQogICBpZiAoc3RyY21w KHItPmhhbmRsZXIsICJteWhhbmRsZXIiKSkgew0KICAgICAgICByZXR1cm4gREVDTElORUQ7DQog ICAgfQ0KDQogICANCiAgIGJpbmFyeXRyZWU9KE5PREUqKWFwcl9zaG1fYmFzZWFkZHJfZ2V0KG15 X3NobSk7DQogICBiaW5hcnl0cmVlPWluc2VydChiaW5hcnl0cmVlLDE5MjE2ODIyLG15X3NobSk7 DQogICBiaW5hcnl0cmVlPWluc2VydChiaW5hcnl0cmVlLDE5MzE2ODIyLG15X3NobSk7DQoNCiAg IGFwX3JwcmludGYociwgIiVpJWlcbiIsIGJpbmFyeXRyZWUtPm5vZGVfZWxlbWVudC5JUCwgYmlu YXJ5dHJlZS0+bm9kZV9lbGVtZW50LmNvdW50ZXIpOw0KICAgYXBfcnByaW50ZihyLCAiJWklaVxu IiwgYmluYXJ5dHJlZS0+cmlnaHQtPm5vZGVfZWxlbWVudC5JUCwgYmluYXJ5dHJlZS0+cmlnaHQt Pm5vZGVfZWxlbWVudC5jb3VudGVyKTsNCiAgIA0KcmV0dXJuIE9LOw0KfQ0KDQpzdGF0aWMgdm9p ZCBteV9ob29rcyhhcHJfcG9vbF90ICpwb29sKQ0Kew0KICAgIGFwX2hvb2tfcHJlX2NvbmZpZyht eV9wcmVfY29uZmlnLCBOVUxMLCBOVUxMLCBBUFJfSE9PS19NSURETEUpOw0KICAgIGFwX2hvb2tf cG9zdF9jb25maWcobXlfcG9zdF9jb25maWcsIE5VTEwsIE5VTEwsIEFQUl9IT09LX01JRERMRSk7 DQogICAgYXBfaG9va19jaGlsZF9pbml0KG15X2NoaWxkX2luaXQsIE5VTEwsIE5VTEwsIEFQUl9I T09LX01JRERMRSk7DQogICAgYXBfaG9va19oYW5kbGVyKG15X2hhbmRsZXIsIE5VTEwsIE5VTEws IEFQUl9IT09LX01JRERMRSk7DQp9DQoNCm1vZHVsZSBBUF9NT0RVTEVfREVDTEFSRV9EQVRBIG15 X21vZHVsZSA9IHsNClNUQU5EQVJEMjBfTU9EVUxFX1NUVUZGLA0KTlVMTCwNCk5VTEwsDQpOVUxM LA0KTlVMTCwNCk5VTEwsDQpteV9ob29rcw0KfTsNCg== --20cf301d424cf91bc204b2bf4f8d--