In the source code that I posted earlier you are correct. But I tested that after changing that code a bit. I called 'sqlite3_close' just after I called 'sqlite3_open'. Then also I am not getting correct PID inside the thread.
So can I do just a 'open' and 'close' of sqlite in parent process and then I create the child process? On 10/4/07, John Stanton <[EMAIL PROTECTED]> wrote: > > You are not only accessing an Sqlite connection across threads, but also > processes! > > Create the DB connection in the thread in which it is being used and you > will obey the needs of all versions of Sqlite. > > One da6tabase may be used across processes provided that you create the > connection according to the Sqlite rules and do it in the thread of > execution. > > Sabyasachi Ruj wrote: > > I read that. > > But it prohibits to use SQLite open handles across processes. > > It is not written that one database should not be used acoross process. > > I am carrying any sqlite open across processes. > > > > Before creating the daemon:- > > I am opening sqlite > > doing something > > closing sqlite. > > > > But then also the problem persists. > > > > I mean I am not getting the process id of the CHILD PROCESS inside the > > threads > > (which has created the threads). > > > > But in that CHILD process, the pid is OK(it returns its id, not of the > > PARENT PROCESS). > > > > > > > > Thanks for your repply. > > > > On 10/4/07, Rich Rattanni <[EMAIL PROTECTED]> wrote: > > > >>Just read this today, after doing some other research. Does this help > >>any? > >> > >>http://www.sqlite.org/faq.html#q6 > >> > >>It says, in a nutshell, don't use a database across forks. > >> > >>On 10/3/07, John Stanton <[EMAIL PROTECTED]> wrote: > >> > >>>How do you know that when your process forks that you are looking at > the > >>>child, not the parent? > >>> > >>>Sabyasachi Ruj wrote: > >>> > >>>>Hi, > >>>> > >>>>I am writing an application which will continue to execute as a > >> > >>'daemon' in > >> > >>>>Linux. > >>>>The application is multi threaded. > >>>>And once the daemon is created, it will create few threads to perform > >> > >>some > >> > >>>>tasks. > >>>> > >>>>>From here, I'll refer the 'process before creating the daemon' as > >> > >>'PARENT > >> > >>>>PROCESS', > >>>>and 'process after creating the daemon' as 'CHILD PROCESS'. > >>>> > >>>>So the threads are being created in CHILD PROCESS. > >>>> > >>>>I need to get the process id (PID) in those threads. > >>>> > >>>>Here is my problem! > >>>> > >>>>If I have called 'sqlite3_open' BEFORE creating the daemon, > >>>>then the PID I am getting inside the thread, is the PID of the > >>>>'PARENT PROCESS', not the 'CHILD PROCESS'! > >>>> > >>>>But as after creating the daemon, the PARENT PROCESS gets killed, > >>>>those are invalid PIDs. > >>>> > >>>>This happens ONLY if I am calling the 'sqlite3_open' before creating > >> > >>the > >> > >>>>daemon! > >>>> > >>>> > >>>>I am not getting if this is the expected behavior or not. > >>>> > >>>> > >>>>Herewith I am attaching one sample test project, that will depict the > >> > >>issue. > >> > >>>>It is having one Makefile. The executable will be named as: pidtest > >>>> > >>>>To execute that process as a daemon use the '-d' command line > >> > >>argument. > >> > >>>>For example:- > >>>>./pidtest -d > >>>> > >>>>This process will create one log file called 'log.txt' in the current > >>>>directory. > >>>>which will show the output. > >>>> > >>>>For limitation on size of the mail,I have removed SQLite source code(' > >>>>sqlite3.c' and 'sqlite3.h'). > >>>>I am using amalgamated code, version 3.4.0. > >>>>Checked with the latest 3.4.2. The problem is same. > >>>> > >>>> > >>>> > >>>> > >> > >>------------------------------------------------------------------------ > >> > >>>> > > >>----------------------------------------------------------------------------- > >> > >>>>To unsubscribe, send email to [EMAIL PROTECTED] > >>>> > >> > > >>----------------------------------------------------------------------------- > >> > >>> > >>> > > >>----------------------------------------------------------------------------- > >> > >>>To unsubscribe, send email to [EMAIL PROTECTED] > >>> > >> > > >>----------------------------------------------------------------------------- > >> > >>> > >> > > >>----------------------------------------------------------------------------- > >>To unsubscribe, send email to [EMAIL PROTECTED] > >> > > >>----------------------------------------------------------------------------- > >> > >> > > > > > > > > > > ----------------------------------------------------------------------------- > To unsubscribe, send email to [EMAIL PROTECTED] > > ----------------------------------------------------------------------------- > > -- Sabyasachi