Saturday, January 25, 2014

comp.programming.threads - 26 new messages in 8 topics - digest

comp.programming.threads
http://groups.google.com/group/comp.programming.threads?hl=en

comp.programming.threads@googlegroups.com

Today's topics:

* How to view what commands are run by an exe file as they are running - 1
messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/826e0e9502290d02?hl=en
* Clarification for the handling of sigwaitinfo() - 5 messages, 2 authors
http://groups.google.com/group/comp.programming.threads/t/352f84129d0c6eb1?hl=en
* Solutions manuals lots of them at reasonable prices - 1 messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/09b08d7e20b54545?hl=en
* I have come to an interresting subject - 1 messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/100f77da58d4a67b?hl=en
* Parallel archiver was updated to version 1.98... - 1 messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/0b0ba4196677658c?hl=en
* Combination of sigwait() with sigaction()? - 5 messages, 3 authors
http://groups.google.com/group/comp.programming.threads/t/8fb8e48e21c67023?hl=en
* I have updated my SemaCondVar to version 1.15 - 1 messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/0e2fe50d3eb4b736?hl=en
* Open issues in the specification for fork()? - 11 messages, 5 authors
http://groups.google.com/group/comp.programming.threads/t/e219574ddde7649b?hl=en

==============================================================================
TOPIC: How to view what commands are run by an exe file as they are running
http://groups.google.com/group/comp.programming.threads/t/826e0e9502290d02?hl=en
==============================================================================

== 1 of 1 ==
Date: Fri, Nov 15 2013 12:03 pm
From: Lucas Levrel


Le 15 novembre 2013, chiz a �crit :

> My problem is this: I am trying to install a program that requires me to
> have a specific version of another program installed before completing
> the install. When I run the .exe file, it goes through the normal steps
> until it checks to see if I have a specific version of another program
> installed. I have this program installed but, for whatever reason, it
> does not recognize that I have it installed.

The "whatever" here is a big problem I think.

> So, I want to see where it is looking for that file. I don't want to
> edit the .exe file. I just want to know what commands the .exe is trying
> to run so I can see where it is looking. Maybe a "command" is a bad way
> to describe what I'm looking for... not sure. If I can see where it is
> looking, I can install the program into that directory. I'm hoping that
> would solve the problem.

Normally one should not make assumptions on where a program resides, so
your calling program should not have the path to the called program
hardcoded. Is the called program in your %path%? Run a command window
(Win+R, type "cmd", Enter), type there "the_called_program_name.exe". Is
it found by Windows?

But are you sure this is a path issue? The calling program could be
running a command like "the_called_program /version" and parsing the
output to know which version is installed.

--
LL





==============================================================================
TOPIC: Clarification for the handling of sigwaitinfo()
http://groups.google.com/group/comp.programming.threads/t/352f84129d0c6eb1?hl=en
==============================================================================

== 1 of 5 ==
Date: Sat, Nov 16 2013 7:16 am
From: Markus Elfring


Hello,

I try to wait for various signals in a dedicated thread on my openSUSE system as
you can see it from the attached source file.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sigwaitinfo.html

I wonder why this small test program does not work as expected so far. I get the
error message "my_receiver: Signal wait failed." after a signal was sent to the
corresponding process.

I would appreciate your advices.

Regards,
Markus




== 2 of 5 ==
Date: Sat, Nov 16 2013 12:23 pm
From: Chris Vine


On Sat, 16 Nov 2013 16:16:42 +0100
Markus Elfring <Markus.Elfring@web.de> wrote:
> Hello,
>
> I try to wait for various signals in a dedicated thread on my
> openSUSE system as you can see it from the attached source file.
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/sigwaitinfo.html
>
> I wonder why this small test program does not work as expected so
> far. I get the error message "my_receiver: Signal wait failed." after
> a signal was sent to the corresponding process.
>
> I would appreciate your advices.

I may have missed it (the code is quite dense) but I could not see
on a quick read where you blocked asynchronous delivery of the signal to
the process, so that sigwait() could pick it up.

Chris




== 3 of 5 ==
Date: Sun, Nov 17 2013 1:50 am
From: Markus Elfring


> I may have missed it (the code is quite dense) but I could not see
> on a quick read where you blocked asynchronous delivery of the signal to
> the process, so that sigwait() could pick it up.

I thought that my function call "pthread_sigmask(SIG_SETMASK, &signal_set,
NULL)" does this. Did I interpret the return value of the function "sigwaitinfo"
in the wrong way here?

Regards,
Markus




== 4 of 5 ==
Date: Sun, Nov 17 2013 3:11 am
From: Chris Vine


On Sun, 17 Nov 2013 10:50:16 +0100
Markus Elfring <Markus.Elfring@web.de> wrote:

> > I may have missed it (the code is quite dense) but I could not see
> > on a quick read where you blocked asynchronous delivery of the
> > signal to the process, so that sigwait() could pick it up.
>
> I thought that my function call "pthread_sigmask(SIG_SETMASK,
> &signal_set, NULL)" does this. Did I interpret the return value of
> the function "sigwaitinfo" in the wrong way here?

So you did, and you preceded it with sigfillset(), so that is fine.

Yes I think it is the return value of sigwaitinfo() which you are
interpreting incorrectly. According to POSIX:

"Upon successful completion (that is, one of the signals specified by
set is pending or is generated) sigwaitinfo() ... shall return the
selected signal number. Otherwise, the function shall return a value of
-1 and set errno to indicate the error."

I presume here "return the selected signal number" means really return,
not (in the case of success) providing it via the 'info' out parameter
(which it is also required to do if not NULL). Since no signal number
has value 0, neither success nor failure will return 0.

This is quite confusing, as sigwait() does return 0 in case of success
and provide the signal number via its out parameter.

Chris




== 5 of 5 ==
Date: Sun, Nov 17 2013 4:30 am
From: Markus Elfring


> Yes I think it is the return value of sigwaitinfo() which you are
> interpreting incorrectly.

Thanks for your feedback.

My source file seems to work as expected after a small adjustment.

Regards,
Markus





==============================================================================
TOPIC: Solutions manuals lots of them at reasonable prices
http://groups.google.com/group/comp.programming.threads/t/09b08d7e20b54545?hl=en
==============================================================================

== 1 of 1 ==
Date: Sun, Nov 17 2013 4:47 pm
From: hasaneser07@gmail.com


25 Nisan 2009 Cumartesi 09:37:08 UTC+3 tarihinde Solutionbuy yazdı:
> get these solutions manuals at reasonable prices: if you are
> imnterested in buying any of the solution manuals listed below themn
> just email me with your requirement at solutionbuy[at]gmail.com. If
> you need anything from the list urgently then this is the right place.
> i will answer your emails almost instantly as far as possible.
> Here is the list:
> Analysis- With an Introduction to Proof, 4-E-Instructors SM
> Deitel &Deitel How to Program C++ 6th E Code solutions +solution
> manual
> John Hull Options, Futures and Other Derivatives 7E test bank
> Cutnell John, Physics 7th E, Instructors manual (all solutions even
> +odd)
> Prentice Hall's Federal Taxation 22/e 2009 Corporations test bank and
> solution manual
> Cost accounting by Hongren 13/e test bank and Solution manual
> Instructors Solution Manual Gas Dynamics John & Keith
> Aerodynamics for Engineers, 5E Solution manual Bertin Russ Cummings
> Java Foundations- Introduction to Program Design and Data Structures-
> project solutions
> Instructor's Manual Contemporary Engineering economics 4e Park
> sm-advanced accounting 10e beams
> Oppenheim - Signals And Systems 2Ed- Solution Manual
> DATA COMMUNICATION BY FOROUZAN Solution manual
> (Artech 05) Signal Detection And Estimation - Solution Manual
> (McGraw-Hill) (Instructors Manual) Electric Machinery Fundamentals 4th
> Edition (Stephen J Chapman)
> [E-BOOK] William H Greene (2003) - Econometric Analysis (Solution
> Manual)
> [Manual] Navision - Choosing The Right Erp Solution
> A Course in Game Theory Solution Manual - Martin J. Osborne
> A First Course in Probability - Sheldon Ross - 7th Ed - Solution
> Manual
> Alpha C. Chiang - Fundamental Methods of Econometrics Solution Manual
> An Introduction To The Finite Element Method - Solution Manual (J N
> Reddy)
> Calculus - Jerrold Marsden & Alan Weinstein - Student Solution Manual
> Calculus of Variations + Solution Manual-01--Russak-p241—
> Chapra - Applied Numerical Methods with matlab Solutions
> Cormen - Introduction To Algorithms 2nd Edition Solutions
> (Instructors.Manual)
> Cheng - Field And Wave Electromagnetics 2Ed Solution Manual
> Cover - Elements of Information Theory - solution manual
> Discrete Time Signal Processing 2Ed - Oppenheim Solution Manual
> E Springer - Probability And Statistics For Engineering And The
> Sciences - Solution Manual - Jay L Devore
> ELECTRIC CIRCUITS + SOLUTION MANUAL - NILSSON - 7TH ED_(EN)
> Electric Machinary Fundamentals Instructors Manual - Maquinas
> Eletricas - Chapman 4ed - 2004
> Electrical Machines, Drives and Power Systems 6th ed [INSTRUCTORS
> MANUAL] - T. Wildi (PTC, 2006)
> Elements Of Information Theory - Solution Manual
> Engineering Fluid Mechanics (Solution Manual)- Clanton T Crowe 7 Ed.
> Engineering Mechanics Statics R C Hibbeler 11Th Solution Manual
> Fletcher, Computational Techniques for Fluid Dynamics-Solution Manual
> (Springer)
> Fundamentals of Heat and Mass Transfer [Frank P.Incropera - David
> P.DeWitt] Solution Manual
> Fundamentals of Physics - 7th Edition Instructors Solutions Manual
> Fundamentals of Thermodynamics (6th Edition) solution manual SI units
> - SONNTAG, BORGNAKKE, VAN WYLEN
> Fundamentals of Thermodynamics [Sonntag-Borgnakke-Van Wylen] Solution
> Manual Chapters 10-16 by ml
> Fundamentals.of.Electromagnetics.with.Engineering.Applications.by.Stuart.M.Wentworth.
> (Solution.Manuals).-.
> Giancoli, D -Physics-6Th Edition-Solution Manual- Part 1- Chapter 01-15
> —
> Giancoli, D -Physics-6Th Edition-Solution Manual- Part 2- Chapter 16-33
> —
> Hull ,John - Options, futures and other derivative securities, 5th ed
> hull_solutions 5th ed
> Instructor's Solution Manual For Advanced Calculus (Gerald B. Folland)
> Introduction_To_Algorithms_2nd_Edition_Solutions__Instructors.Manual_
> Introductory Quantum Optics - Solution Manual
> Kittel, Charles - Introduction To Solid State Physics 8Th Edition -
> Solution Manual
> Mathlab DSP A Computer Based Approach - Solution Manual - Sanjit
> K.Mitra
> Numerical Methods for Engineers-Solution manual – Chapra
> Operating System Concepts 7th edtion Solution Manual
> Optimal State Estimation - Kalman, Hoo and Nonlinear Approaches
> [SOLUTION MANUAL]_OCR_ - D. Simon (Wiley, 2006)
> Pattern Recognition and Machine Learning (Solution Manual) – Bishop
> Physical Chemistry 7ed - Peter Atkins - Julio de Paula - instructors
> solution manual
> Physics - Classical Mechanics - Fundamentals of Thermodynamics
> [Sonntag-Borgnakke-Van Wylen] Solution Manual Chapters 1-9
> Power System Analysis_Solution Manual_John Grainger & William
> Stevenson
> Proofs Solution manual TextBook ISBN 0534382142 Instructor's solution
> manual ISBN 0534382150 A Transition to Advanced Mathematics solution
> manual
> Shigley's Mechanical Engineering Design 8th Edition ebook
> Solid_state_electronic_devices_streetman_solution_manual
> Sedra Smith Microelectronics Instructors's Manual
> Solution manual - Digital Communications 4th Edition – Proakis
> Solution manual - System Dynamics, 3rd edition – Ogata
> Solution Manual For C How To Program
> Solution Manual for Semiconductor Devices--Physics and Technology
> [Sze, S. M]
> Solution Manual Linear Systems And Signals B P Lathi
> Solution Manual to Introduction to Mathematical statistics. 6ed. Hogg,
> McKean and Craig
> Solving ODEs with Matlab Instructors Manual - L.F. Shampine
> Thomas' Calculus 11E - Solution Manual
> Thomas' Calculus, Early Trascendentals 10th ed Instructors Solutions
> Manual
> William Stallings - Operating systems - Instructors Manual-Solutions
>
> Some more sol manuals::
> (eBook - Mathematics) McGraw-Hill - Advanced Calculus (Schaum's
> Outlines, 442 pages), 2nd Ed - 2002
> (Hogg & Tanis) Probability And Statistical Inference 7E - Instructors
> Solution Manual (Pearson 2005)
> [Instructor Solutions Manual] Wireless Communications 2Ed (Theodore
> Rappaport)
> [Solutions Manual] [Instructors] Calculus 5Th Ed James Stewart
> Instructor_Solutions_Manual__Discrete_Event_System_Simulation_3e__69_pages_
> Advanced Engineering Mathematics (9th ed) (Instructor Manual) - Erwin
> Kreyszig (Wiley, 2006)
> An Introduction To Database Systems 8Ed - C J Date - Solutions Manual
> Analytical Mechanics 7th ed [SOLUTIONS MANUAL] - G. Fowles, G.
> Cassiday (2005) WW
> Anderson - Fundamentals of Aerodynamics (Instructor's Solutions
> Manual)
> ATPL BristolGS Meteorology Question Bank (57s)
> Calculus on Manifolds (Spivak) - Solutions
> Communication Systems 4Th Edition Simon Haykin With Solutions Manual
> Communication_Systems___A_Bruce_Carlson_Solutions_Manual
> Computational techniques for fluid dynamics - Solutions Manual
> Cotton, Chemical Applications Of Group Theory Solutions Of Problems
> Coulson,J M Richardson,J F Chemical Engineering, Solution To The
> Problems In Chemical Engineering, Vol 1 (En 338S) 2001
> Dennis G. Zill - Differential equations Solutions 5th ed
> Economics - The Econometrics Of Financial Markets, A Solution Manual
> To
> Elementary Linear Algebra with Applications, 9E - Instructor Solutions
> Manual
> Griffiths - Introduction to Electrodynamics 3rd edition - Instructors
> Solutions Manual
> Hungerford s Algebra Solutions Manual
> Instructors manual Statics Meriam
> Instructors Solution Manual, Static- Meriam and L. G. Kraige
> Instructor's Solutions Manual - Fundamentals Of Probability with
> Stochastic Processes 3Ed - Saeed Ghahramani
> Instructor's Solutions Manual - Marion, Thornton - Classical Dynamics
> of Particles and Systems, 5th ed!!!!!!!!!!
> James Stewart - Calculus 4 edition - Complete Instructors Solutions
> Manual
> John Wiley & Sons - Calculus, One and Several Variables; Instructor's
> Solutions Manual
> Mechanics Of Materials 6Th Ed Solutions Manua Gere
> Osborne.E.Rubenstein.-.A.Course.In.Game.Theory.-.Solution.-.New
> Physics for Scientists and Engineers, 6e 2004, Instructor's Solutions
> Manual (Serway & Jewett)
> Romer Advanced Macroeconomics-Solutions Manual
> Salas - Calculus one and several variables Instructor solutions manual
> Serway_Physics_6th_Edition_Solutions
> Solution Manual For Microelectronic Circuits By Adel Sedra
> solutions_manual_lathi
> Szekeres A Course In Modern Mathematical Physics Instructor Manual
>
>
> Some
> more:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>
> (ebook - english) Brooks-Cole Publishing, Instructor's Solutions
> Manual -- Physics For Scientists and Engineers
> (Ebook - Pdf - Mathematics) Prentice Hall - Kenneth Hoffmann And Ray
> Kunze - Linear Algebra, 2Nd Edition6
> (Ebook) - Engineering - Basic Engineering Circuit Analysis, 7Ed
> (Solution Manual)
> A First Course in Abstract Algebra 7E - Fraleigh Solution Manual
> Adamek Campbell Lo MacKinlay & Viceira 1997 Solution Manual to The
> Econometrics of Financial Markets
> Adaptive Control 2nd. Edt. by Karl.J.Astrom - solution manuel
> An Interactive Introduction To Mathematical Analysis - Instructor's
> Manual(Solution 417S) Jonathan Lewin
> Atkins Physical Chemistry 8E Instructor's Solution-2006
> Basic Engineering Circuit Analysis, 7Ed(Solution Manual)
> Design With Operational Amplifier And Analog Integrated Circuit 3Rd Ed
> By Sergio Franco - Solution Manual
> Digital Signal Processing - Computer Based Approach - Solution Manual
> - Sanjit K
> Distributed Systems Concepts and Design with Solution Manual
> Electric Machinery 6Ed Fitzgerald, Kingsley, Uman - Solutions Manual
> Fundamentals of Probability with Stochastic Processes (3rd ed) - Saeed
> Ghahramani (Pearson) (Solution Manual)
> Halliday,Resnick,Walker, Fundamentals Of Physics, 7Th Instructors
> Solutions Manual 5275
> How to Program C++-Instructor's Manual - Deitel
> Instructor Solutions Manual For Physics By Resnick Halliday Krane, 5Th
> Ed Vol 2
> Instructor's Manual For C++ How To Program 3e
> Instructor's Manual for Sipser's Introduction to the Theory of
> Computation
> Instructor's Solutions Manual Discrete and Combinatorial Mthematics
> 5ed
> Introduction to Graph Theory 2E - West(Instructor's Solution Manual)
> Introduction to Statistical Quality Control 5E - Montgomery -Solution
> Johnsonbaugh, Richard- Discrete Mathematics. Instructor's Manual.
> Sixth Edition. New Jersey, Prentice Hall, 2005
> McGraw Hill Thermodynamics An Engineering Approach 5th ed 2006
> Solution - by Cengel and Boles
> Microwave And Rfsign Of Wireless Systems - Solution Manual (D M Pozar)
> Modern Control Engineering By K Ogata - Solution Manuel
> Operating System Concepts 7th edtion Solution Manual
> Optimal State Estimation - Kalman, Hoo and Nonlinear Approaches
> [SOLUTION MANUAL] - D. Simon (Wiley, 2006)
> Organic Chemistry Solution Manual - Carey & Atkins 4Th Ed
> Physics - College Physics, 7th Edition (Solutions Chapters 15-25) -
> (Raymond A. Serway, Jerry S. Faughn, Chris Vuille, Charles A. Bennett)
> Brooks Cole 2005
> Ross S. Introduction to probability and statistics for engineers and
> scientists (Elsevier, 2004)(ISBN 0125980574)(641s)
> Semiconductor Device Fundamentals, 1st edt. by Robert F. Pierret -
> solution manue
> Solution manual for communication systems Haykin 4th edition
> Solution to Discrete Time Signal Processing 2ed - Oppenheim SM
> [Serway] College Physics 7 Ed (1058s) ebook & solution manual
> Applied Numerical Analysis 7Ed - Curtis F. Gerald, Patrick O. Wheatley
> - Solutions manual
> Berger, Casella - Statistical Inference, Solution Manual
> Introduction to Chemical Engineering Thermodynamics 7th ed - J.
> Smith . SOLUTIONS MANUAL
> MIT Press - Introduction to Algorithms (Instructor's Manual)
> Smith Vannes Abbot Chemical Engineering Thermodynamics 6th Edition
> Solution Manual
>
>
> Some more……..
> Tipler - Physics, 5 Ed Complete Solutions
> Engineering - Mechanics Of Materials - PROBLEMS - Solution Manual 3
> Ed , Beer, Johnston, & Dewol
> Prentice Hall - Solutions Manual; Communication Systems Engineering
> 2003
> (Prentice) Digital Signal Processing Principles Algorithms &
> Applications 3 Ed Solutions Manual
> solution manual microelectronics - Millman
> Fundamentals of Heat and Mass Transfer F. P.Incropera D. P.DeWitt
> Solution Manual
> D.M.Pozar Solution.Manual of Microwave.Engineering 3ed
> Instructor Solution Manual Electromagnetics
> Instructor Solutions Manual Digital Signal Processing
> [MathematicsLinear Algebra] Introduction to Linear Algebra 3 ed
> (Gilbert Strang Solution Manual)
> Advanced Engineering Mathematics Dennis G Zill 2nd Solution
> Applied Numerical Analysis 7E - Curtis F. Gerald, Patrick O. Wheatley
> - Solutions manual
> Atkins' Physical Chemistry Solution Manual 7th E
> Atkins Physical Chemistry Instructor manual
> Berger, Casella - Statistical Inference, Solution Manual
> Calculus III -Jerrold Marsden & Alan Weinstein (Springer) - Student
> Solution Manual
> Calculus of Variations & Solution Manual Russak
> Callister - Materials Science 6E Instructor Manual
> Instructor's Manual and Testbank to Accompany Timby's Fundamental
> Skills and Concepts in Patient Care, 7th Edition
> Economics - Advanced Macroeconomics, 3rd Edition - Solutions Manual to
> Accompany Romer - McGraw Hill 2006
> Elementary Statistics - Test Bank – Triola
> Elements Of Information Theory - Solution Manual
> Engineering Electromagnetics [Solution Manual] William H. Hayt Jr.John
> A. Buck - 6th Edition
> Fundamentals Of Engineering Thermodynamics - Moran And Shapiro
> (Solution Manual)
> Glyn James - Advanced Modern Engineering Mathematics (3rd Edition)
> Solution Manual
> Gonzalez and Woods - 2002 - Solution Manuals for Digital Image
> Processing - 2nd Edition - Prentice Hall
> Griffiths - Introduction To Quantum Mechanics Solution Manual (2ed)
> Halliday, Resnick - Fundamentals of Physics - test bank
> HH-Analog Integrated Circuit Design and Solution Manual - Johns Martin
> Mathematics - Algebra and Trigonometry, 3rd Edition AND Pre calculus
> (Instructor's Solution Manual) (Beecher)
> Instructor's Solutions Manual - Marion, Thornton - Classical Dynamics
> of Particles and Systems, 5E
> [SOLUTIONS MANUAL] Introduction to Chemical Engineering Thermodynamics
> 7E - J. Smith (McGraw-Hill, 2004)
> Juvinall R C , Marshek K M - Fundamentals Of Machine Component Design
> (Solution Manual)
> Mathematics - Elementary Linear Algebra with Applications, 9th Edition
> - (Howard Anton, Chris Rorres) Wiley 2005
> Mathematics - Elementary Linear Algebra With Applications, 9Th Edition
> (Student Solutions Manual) - (Howard Anton, Chris Rorres) Wiley 2005
> Mathematics - Linear Algebra and Its Applications, 3rd Edition +
> Solutions (Gilbert Strand) Thomson Brooks Cole
> Mechanics Vector Statics Ferdinand P. Beer, Solution manual
> MIT Press - Introduction to Algorithms (Instructor's Manual)
> Modern Control Systems Solutions Manual (Prentice Hall; Richard C.
> Dorf & Robert H. Bishop., 2008
> Morton K. Mayers D. Numerical solution of partial differential
> equations.. An introduction (2E 2005)(ISBN 0521607930)
> Pavia - Introduction to Spectroscopy Solution Manual
> Pearson Education - Physics - Solutions Manual of Sears and Zemansky's
> University Physics with Modern Physics 12th Edition – 2008
> Physical Chemistry 7th ed [SOLUTION MANUAL] - J. de Paula, P. Atkins
> Physics - Paul A. Tipler Solutions Manual 5th Edition Complete
> PROBABILITY & STATISTICS FOR ENGINEERS & SCIENTISTS -- INSTRUCTOR'S
> SOLUTION MANUAL, 8th ed. (KEYING YE, SHARON MYERS
> Probability and Statistics for Engineers and Scientists Manual -
> Solution manual
> Recursive Macroeconomics - Sargent and Lundqvist Solution Manual
> RF circuit Design Theory and Application by Ludwig bretchko - solution
> manual
> Rudin W.,Solution Manual of Principles of Mathematical Analysis
> Simon, Carl P. & Blume, Lawrence - Mathematics for Economists Solution
> Manual
> Smith_Vannes_Abbot_Chemical_Engineering_Thermodynamics_6th_Edition_Soln_Manual
> Solution Manual to engineering fluid mechanics 7e
> Solution.Manual.Elementary.Classical.Analysis.Marsden.Chap.1.to.4
> Stokey N. L. Lucas R.E. [Solution Manual] Recursive Methods in
> Economic Dynamics
> Student Solution Manual for Mathematical Methods for Physics and
> Engineering
> The Science And Engineering Of Materials, Instructor's Solution Manual
> 4E
> Venture Capital Method - Valuation Problem Set - Solutions (Harvard
> Business School
>
>
> More:
>
> [solution] Database Management Systems Solutions Manual, 3rd Ed., by
> R. Ramakrishnan, 2002
> E-book -Abstract Algebra, 3rd ed (I. N. Herstein) [PRENTICE-HALL, 1996
> E-book-Alexander, Sadiku - Fundamentals of Electric Circuits 3ed -
> McGH 2005
> An Introduction to the Mathematicis of Financial Derivatives(Neftci)--
> Solution Manual
> Basic Engineering Circuit Analysis 8th Edition Solution Manual
> Calculus, One and several Variables Solution book-8th Edition---Salas,
> Hille & Etgen
> Carey F.- Organic Chemistry - Solution Manual (5th Ed)
> classical_electrodynamics_jackson_solution_manual_Rudolph J
> Magyar_2004
> Computer Networks A Systems Approach - Solution manual - Peterson and
> Davies
> Control Systems Engineering by Nise Solution Manual
> E Brooks Cole - Analytical Mechanics Solution Manual - Grant R Fowles
> 7Th Edition 2005
> Econometrics - [Instructor Solution Manual] The Econometrics of
> Financial Markets
> Economics Microeconomic Theory - Mas-Colell, Whinston, And Green
> Solution Manual
> Edwards_Penney_-
> _Solution_manual_for_Differential_Equations_And_Linear_Algebra
> Fletcher , C.A.J, Computational Techniques for Fluid Dynamics-
> Solution Manual(Springer
> E-book-Fluid Mechanics And Thermodynamics Of Turbomachinery
> 5th_S.L.Dixon
> E-Book-Halliday - Fundamentals of Physics, 8th Edition
> KREYSZIG (2006) advanced engineering mathematics, 9ed, instructor
> manual
> Microeconomic Theory - Mas-Colell, Whinston, and Green Solution Manual
> Physics - Paul A. Tipler Solutions Manual 5th Edition Complete
> Physics for scientists and engineers with modern physics by Serway and
> Jewett 7th edition Intl-E-book
> RF circuit Design Theory and Application by Ludwig bretchko - solution
> manual
> Rudin W.,Solution Manual of Principles of Mathematical Analysis
> University Physics with Modern Physics [Sears and Zemansky's] 12th ed
> - H. Youing, R. Freeman (Pearson, 2008)E-Book
> Control Systems Engineering 4th Edition - Solutions to Skill-
> Assessment Exercises; Nise, Norman
> Finance - Elementary Calculus of Financial Mathematics - (A. J.
> Roberts) SIAM 2009
> Mathematical Methods - For Students of Physics and Related Fields
> 2ed_Sadri Hassani (Springer 2009 828s)
> Numerical_Analysis-Richard_L.Burden_J.Douglas_Faires-Ebook
> Ross M et al. Histology - A Text and Atlas. 4th Edition (2002),
> Lippincott Williams & Wilkins E-book
> Signals and Systems,2ed - A.V.Oppenheim,A.S.Willsky,Prentice Hall
> Wave Physics - Oscillations, Solitons, Chaos 4Ed Stephen Nettel
> (Springer 2009)ebook
> Wiley (2004) Textbook of Clinical Trials-E-book
> Wiley.Control.Systems.Engineering.4th.Edition.[NORMAN.NISE]-E-Book
> E-Book- discrete mathematics and applications Rosen 6E
> Linear_Algebra__2Nd_Edition_-_Kenneth_Hoffmann_And_Ray_Kunze
> KIESO - Intermediate Accounting 12e (Solution Manual)
> advanced_engineering_mathematics_8th_erwin_kreyszig_solution
> Fundamentals Of Statistical Signal Processing-Estimation Theory(WILEY)
> – Kay-E-book Only
> Fundamentals of Statistical Signal Processing-Detection Theory -
> Prentice Hall (kay)-Ebook
> El-Batanouny and Wooten, Symmetry and Condensed Matter Physics (CUP,
> 2008)(ISBN 9780521828451) E-Book only
> Applied_Statistics_And_Probability_For_Engineers_solution_-Montgomery
> Runger 3ED
> [Instructor_s Solutions Manual] Introduction to Eletrodynamics - 3rd
> ed. David J. Griffiths
> [Physics] Sakurai J. J. - Modern Quantum Mechanics (with solutions for
> the exercices) (Addison-Wesley, 1994)
> 2003_(Serway_&_Jewett)
> _Physics_for_Scientists_and_Engineers_6Ed_Student_Solutions_Manual_&_Study_Guide
> A First Course In Probability 7Ed (Solution Manual Prentice Hall 147S)
> Sheldon Ross
> Addison Wesley - Modern Control Systems Analysis and Design Using
> Matlab, Bishop (2009)
> Applied Linear Statistical Models Student Manual Solutions (Neter et
> al)5e
> applied probability models sheldon ross solution manual
> Applied Statistics And Probability For Engineers-P822-P976 Student
> Solutions Manual(2002 Wiley)
> Control Systems Engineering 4th Edition - Solutions to Skill-
> Assessment Exercises; Nise, Norman
> Control Systems Engineering-Nise-Solution Skill-Assessment Exercises
> (4Ed-72 Pag)
> Deitel - C++ for Programmers (Prentice Hall 2009)ebook
> Deitel - Solution Manual - Simply C#
> Digital Signal Processing - McGraw Hill - DSP - A Computer Based
> Approach - Solution Manual
> Dorf-Svaboda - Solution Manual For Introduction To Electric Circuits
> 6Th Edition
> El-Batanouny and Wooten, Symmetry and Condensed Matter Physics (CUP,
> 2008)(ISBN 9780521828451)ebook
> Electric Machinery And Power System Fundamentals (solution manual) 1st
> E- Stephen J.Chapman
> EN CHINO Kittel Charles - Introduction To Solid State Physics 8Th
> Edition-Solution Manual
> Engineering Electromagnetics, 6th Edition + Solutions Manual
> Finance - Budgeting Basics and Beyond, 3rd Edition - (Jae K. Shim,
> Joel G. Siegel) Wiley 2009 ebook
> Finance - Elementary Calculus of Financial Mathematics - (A. J.
> Roberts) SIAM 2009Ebook
> Fraleigh, J. B. - Instructor's Solution Manual to accompany A First
> Course in Abstract Algebra, 7th Edition (2002)(193s)(EN)
> full manual HSC Chemistry 5
> Fundamentals of Statistical Signal Processing-Detection Theory -
> Prentice Hall (kay)Ebook
> Fundamentals Of Statistical Signal Processing-Estimation Theory(WILEY)
> – Kay Ebook
> Fundamentals_of_Digital_Logic_with_Verilog_Design__1st_edt._by_S._Brown__Z._Vranesic__-
> _solution_manual
> Gasiorowicz, S. - Instructor Manual to Quantum Physics
> General Chemistry, 8th Edition - Solution Manual _2001By Ralph H.
> Petrucci; William S. Harwood; Geoffrey Herring
> Intermediate Accounting Student Solution Manual
> Introduction To Algorithms 2Nd Edition Solutions(Instructor's.Manual)
> Kittel, Charles - Introduction To Solid State Physics 8Th Edition -
> Solution Manual
> Mathematical Methods - For Students of Physics and Related Fields
> 2ed_Sadri Hassani (Springer 2009 828s) Ebook
> Mathematical Statistics - Exercises and Solutions [Jun Shao, Springer,
> 2005]
> Mathematics - Applied Partial Differential Equations, 4th Edition
> (Solutions Manual) - (Richard Haberman) Pearson Prentice Hall
> Mathematics - Linear Algebra with Applications, 6th Edition (SOLUTIONS
> MANUAL) - (Steven J. Leon) Prentice Hall 2002
> Mathematics - Numerical Methods, 3rd Edition - (J.Douglas Faires,
> Richard L. Burden) Brooks Cole 2002
> McClellan.Schafer.Yoder.-.Signal.Processing.First.
> (2003).Solution.Manual
> McGraw-Hill Science, Engineering, Math - Digital Communications
> (Solution manual) - John Proakis - 4 edition (August 15, 2000) - ISBN
> 0072321113--
> Montgomery - Applied Statistics and Probability for Engineers -
> Student Solutions Manual
> Multivariate Statistics - Exercises and Solutions - W. Hardle, Z.
> Hlavka (Springer, 2007)
> Neta - Numerical Solution Of Partial Differential Equations Solutions
> Of Problems In Lecture Notes
> Numerical_Analysis-Richard_L.Burden_J.Douglas_Faires
> Papoulis, Athanasios - 2002 - Probability, Random Variables and
> Stochastic Processes 4ed. Solution Manual
> Papoulis, Pillai - Solution Manual of Probability Random Variables And
> Stochastic Processes
> Physics - Giancoli, Physics Solution Manual - Pearson 2005
> Physics - Pearson Physics - (James E. Ackroyd, Mark Anderson, Carmen
> Berg, Brian E. Martin) Pearson 2009 Ebook
> Probability, Random Variables And Stochastic Processes Solutions -
> Papoulis 2002
> Ross M et al. Histology - A Text and Atlas. 4th Edition (2002),
> Lippincott Williams & Wilkins
> Signals and Systems [Alan V.Oppenheim, Alan S.Willsky, Hamid Nawad,
> with S.Hamid (Pearson Education, 1998)
> Signals and Systems,2ed - A.V.Oppenheim,A.S.Willsky,Prentice Hall
> Simon & Blume 1994 Mathematics for Economists Solution Manual
> Solid State Electronic Devices Solution Manual - Streetman
> Solid State Physics - Problems And Solutions
> solution Automatic Control Systems 8Ed - Kuo and Golnaraghi -
> Solutions Manual
> Solution Manual - Electronic Circuit Analysis And Design 2th Donald A.
> Neamen
> Solution.Manual.to.Engineering.Fluid.Mechanics.7th.Ed.0471219665
> Solutions Manual_Financial Accounting by Libby, Libby, Short
> Solutions to Math Methods for physicists Riley, Hobson, Bence
> Solutions to T.M.Apostol, Calculus, vol. 1
> Springer - 2006 - Finite Element Methods - Parallel-Sparse Statics and
> Eigen-Solutions
> Springer - Structure of Matter - An Introductory Course with Problems
> and Solutions - 2007
> Stockey & Lucas (1989) - Recursive Methods in Economic Dynamics
> (Solution Manual)
> Swokowski Calculus Solutions Manual
> Wave Physics - Oscillations, Solitons, Chaos 4Ed Stephen Nettel
> (Springer 2009 295S)Ebook
> Wiley - Applied Statistics and Probability for Engineers - Student
> Solutions Manual, 3rd Ed (2003)
> Wiley (2004) Textbook of Clinical Trials Ebook
> Wunsch and Brown. Complex Variables with Applications. Solutions
> Manual
>
>
> More solution manuals:
> Introduction to Fluid Mechanics Solutions Manual (Fox, 5th ed)
> Introduction to Linear Algebra 3Ed - Gilbert Strang Solutions Manual
> Investments.Test.Bank.and.Solutions.Manual.the.4th.edition
> Jackson J.D. - Classical Electrodynamics. Solutions Manual (2004)
> John Wiley & Sons - Applied Statistics and Probability for Engineers &
> Student Solution Manual 3rd Ed (2003) 977p
> Kittel, Charles - Introduction To Solid State Physics 8Th Edition -
> Solution Manual
> kuo and golnaragh automatic control systems 8ed - solutions manual
> Linear Algebra and its Applications [Solutions Manual] 3rd ed - D. Lay
> Massey B., Ward-Smith J. Mechanics of Fluids. Solutions Manual (8th ed)
> (Taylor and Francis, 2006)
> Materials Science And Engineering (Solutions Manual) [Callister]
> Matrix Analysis and Applied Linear Algebra - Solutions Manual - Carl
> D. Meyer
> Mechanical Engineering Design 7th ed (SOLUTIONS MANUAL) - S. Mischke,
> R. Budynas (McGraw-Hill, 2003)
> Mechanics Of Materials - Hibbeler 6th Ed. (manual solutions)
> Modeling Analysis And Simulation - Bequette Ebook only
> Modern Electronic communication 8e - Gary Miller & Beasley - Solutions
> Manual
> Operating Systems Stallings 4ed solutions manual
> Organic Chemistry 2nd ed [Student SOLUTIONS MANUAL and Study Gde] - J.
> Hornback, B. Murugaverl (Thomson, 2006)
> Power Analysis and Design Instructor solution manual Glover and Sarma
> Principles of Communication 5Ed R. E. Ziemer, William H. Tranter
> Solutions Manual
> Saxon Math 54 Solutions Manual
> Saxon Math 65 - Solutions Manual
> Semiconductor Physics and Devices 3rd ed [SOLUTIONS MANUAL] – Neamen
> Solution Manual - Electronic Circuit Analysis And Design 2th Donald A.
> Neamen
> Solution.Manual.for.Semiconductor.Devices.-.Physics.and.Technology.
> [Sze,.S..M]
> Solution.Manual.to.Engineering.Fluid.Mechanics.7th.Ed.0471219665
> Solution_manual_Thermodynamics_Of_TurboMachinery_5th_edition (204 pag)
> Srednicki, M. Quantum Field Theory - Solutions Manual
> Study Guide and Solutions Manual to Accompany Organic Chemistry
> (Atkins, Carey)(4ed)
> Tang C. Solutions Manual. Fundamentals of Quantum Mechanics.. for
> solid state electronics and optics (CUP, 2005)
> Wiley - Applied Statistics and Probability for Engineers - Student
> Solutions Manual, 3rd Ed (2003)
> Wiley.Chemical.and.Engineering.Thermodynamics.3Ed.Solutions.Manual
> Wooldridge, Jeffrey M - Econometric Analysis Of Cross Section And
> Panel Data Solutions Manual
> Engineering Fundamentals of Machine Component Design, 3rd ed - Student
> Solutions Manual-Juvinall, Marshek
> (Electrical Engineering) Modern Digital And Analog Communications
> Systems - B P Lathi Solutions Manual-
> .McGraw.Hil.-.Probability.Random.Variables.and.Stochastic.Processes.Solutions.Manual.-.Papoulis.-.
> 2002
> 2000_(Atkins_&_Carey)
> _Study_Guide_and_Solutions_Manual_to_Accompany_Organic_Chemistry_4th_Ed
> Abstract Algebra - Solutionschap1-5
> Abstract Algebra - Solutionschap6-10Analog Integrated Circuit Design
> Solutions Manual - Johns Martin
> Applied Statistics and Probability for Engineers 3rd ed - D.
> Montgomery, G. Runger [SOLUTIONS MANUAL] (Wiley, 2003)
> Automatic Control Systems 8Ed - Kuo and Golnaraghi - Solutions Manual
> Berkeley Physics Series, vol 3essentialphysics1
> Boas- Mathematical Methods in the Physical Sciences 3ed INSTRUCTORS
> SOLUTIONS MANUAL
> Butterworth Heinemann - Coulson & Richardson's Chemical Engineering
> Vol 4, (Solutions Manual V Edition)
> Casella, Berger (2001) - Solutions Manual of Statistical Inference,
> 2ed
> CFA - International Financial Statement Analysis - (Thomas R.
> Robinson, Hennie van Greuning, Elaine Henry, Michael A Broihahn) Wiley
> 2009
> Cfa Level 1 Testbank 1
> Cfa Level 1 Testbank 2
> Derivatives Markets 2nd ed solutions manual
> Device_Electronics_for_Integrated_Circuits_3Ed_-_Muller___Kamins_-
> _Solutions_Manual
> Digital image processing - Gonzalez 2Ed- Solutions Manual
> DORF_Solutions Manual_Control Systems Modern
> Econometric Analysis - Solutions Manual (Greene 6Th 2007)
> Electric Machinery Fundamentals (Solutions Manual)
> Engineering Circuit Analysis 6Ed - Hayt Solutions Manual
> Fourier and Laplace Transforms, Manual Solutions
> Fracture.mechanics.fundamentals.and.applications.
> 2edition_anderson.solutions.manual
> Fundamentals Of Electronic Circuit Design (2003) - David & Donald
> Comer - Solutions Manual
> Fundamentals of Logic Design 5Ed - Charles Roth - Solutions Manual
> Fundamentals of Probability With Stochastic Processes 3rd ed
> [SOLUTIONS MANUAL] - S. Ghahramani (PTC, 2004)
> Gregory - Classical Mechanics - SOLUTIONS MANUAL (Cambridge, 2006)
> Hal Varian - Microeconomic Analysis 3rd ed. Solutions Manual
> Instructor_Solution_Manual_to_Accompany_Boyce_Elementary_Differential_Equations_8E
> Wang, L. & Zhou, X. & Wei, X. - Heat conduction. Mathematical models
> and analytical solutions (Springer, 2008)
> [Solutions Manual] Fundamentals Of Fluid Mechanics 3Rd And 4Th Edition
> Computer Networks Systems Approach by davie peterson_solutions_manual

hi,
I need solution of Linear_Algebra__2Nd_Edition_-_Kenneth_Hoffmann_And_Ray_Kunze. Can i find it ?





==============================================================================
TOPIC: I have come to an interresting subject
http://groups.google.com/group/comp.programming.threads/t/100f77da58d4a67b?hl=en
==============================================================================

== 1 of 1 ==
Date: Thurs, Nov 21 2013 7:17 am
From: aminer



Hello,


I have come to an interresting subject, as you have
noticed i have designed and implemented parallel programs
that you can find in my following website:

http://pages.videotron.com/aminer/


But i was thinking more and more about my parallel programs,
and asking myself some questions... if you take a look
carefully at my compression library or my parallel archiver
you will notice that this compression libraries are construtions of
easier high level objects that you can use to do your compression
EASILY, it's like robotics and automatization , now you are not required
to write compression algorithms or write those high level objects that
easy for you the compression process, you are only required
to call the methods of those high level objects that do the compression
for you, so it's like robotic automatization, you are only required to
instantiate high lebel objects that do the compression and call the
methods and it is much easier, but since it's like robotic
automatization that easyr for you the compression process and speed the
process of designing compression programs, hence you will be able
implement compression programs inside your application or software much
more faster , so with those high level compression objects that you will
find inside my compression libraries you will implement more quantities
of codes that do compression per second , so since
you will be able to implement more codes per second that means
that less and less software programmers are needed to be able
process the world wide or national wide compression software projects,
so that means that this automatization with those high level objects:
such us GUI or compression libraries or... can put more and more
software programmers out of there jobs.. that the same thing for
robotics automatisation and the same thing in other fields i think
many works will be put out of jobs because of for exemple robotic
automatization etc. etc. hence i was asking myself how can we solve this
problems like robotic and software automatization etc. that will put
more and more workers out of jobs ?



Thank you
Amine Moulay Ramdane.


























==============================================================================
TOPIC: Parallel archiver was updated to version 1.98...
http://groups.google.com/group/comp.programming.threads/t/0b0ba4196677658c?hl=en
==============================================================================

== 1 of 1 ==
Date: Thurs, Nov 21 2013 8:35 am
From: aminer



Hello,

Parallel archiver was updated to version 1.98...

The LoadFromStream() method was fault tolerant to archive
damages and power failures etc. but there was still a problem,
the archive have to have a kind of an unique id so that the
LoadFromStream() works correctly , so i have added this unique
id and now Parallel archiver is rock solid an very stable.

You can download parallel archiver 1.98 from:

http://pages.videotron.com/aminer/

PArchiver 1.98 (stable version)

Description: Parallel archiver using my Parallel LZO , Parallel LZ4 ,
Parallel Zlib , Parallel Bzip and Parallel LZMA compression algorithms..

Supported features:

- Opens and creates archives using my Parallel LZ4 or Parallel LZO or
Parallel Zlib or Parallel Bzip or Parallel LZMA compression algorithms.

- Wide range of Parallel compression algorithms: Parallel LZ4, Parallel
LZO, Parallel ZLib, Parallel BZip and Parallel LZMA with different
compression levels

- Compiles into exe - no dll/ocx required.

- 64 bit supports - lets you create archive files over 4 GB ,
supports archives up to 2^63 bytes, compresses and
decompresses files up to 2^63 bytes.

- Now my Parallel Zlib gives 5% better performance than Pigz.

- Supports memory and file streams , adds compressed data
directly from streams and extracts archived files to streams
without creating temp files.
- Save/Load the archive from stream

- Supports in-memory archives

- You can use it as a hashtable from the hardisk or from the memory

- Fault tolerant to power failures etc..

- Creates encrypted archives using Parallel AES encryption with 256 bit
keys.

- Fastest compression levels are extremely fast

- Good balanced compression levels provide both good compression ratio
and high speed

- Maximum compression levels provide much better compression ratio than
Zip, RAR and BZIP and the same as 7Zip with 8 megabytes dictionary.

- It supports both compression and decompression rate indicator

- You can test the integrity of your archive

- Easy object programming interface

- Full source codes available.

- Platform: Win32 , Win64

Please look at test_pzlib.pas , test_plzo.pas , test_plz4.pas ,
test_pbzip.pas and test_plzma.pas demos inside the zip file, compile and
execute them.. -
I have tried to do a worst scalability prediction with an HDD drives and
a Q6600 quad core for my parallel archiver with Parallel LZMA, and i
think it's good..

There is four things in my Parallel LZMA algorithm:

First we have to copy serially a stream from the hardisk to the memory
and this will take in average 0.2 second and in the compression method
we have to copy a stream to the memory and this will take in average
0.05 second and in the compression method you have to compress a stream
to another stream in memory and this will take in average 13 seconds
seconds and in the compression method you have to copy a compressed
stream to a hardisk file and this will take in average 0.01 second.

So we have the serial part that is: 0.2 second + 0.01 second + 0.05
second = 0.26 second = 0.02%
and the parallel part will that is: 13 seconds = 0.98%

So the worst case scalability scenario using an HDD and using the Amdahl
equation will give us: 1/0.02% + (0.98%/N) = 50X scalability (N: is the
number of cores)

So this will scale up to: 50X , so as you have noticed with an HDD drive
this is a good scalability.

So what can we do to scale more parallel archiver using parallel LZMA ?

You can for example use a RAID 10 with a base configuration of 4 HDD
drives, so this will cut in 4 the 0.2 second and the 0.01 second , so
this will give a scalability of 124X and this is better.. but to speed
more the things we can use SSD drives that are 2X time faster than a HDD
drives and with a RAID 10 configuration and this will give: 434X
worst case scalability.

So as you have noticed if you are using only an HDD with a multicore
system you will get a 50X scalability with my parallel archiver using
parallel LZMA, and if you use RAID 10 with SSD drives you will get 434X
scalability.

When you want to delete files inside the archive you have to call the
DeleteFiles() method , the DeleteFiles() method will not delete the
files, it will mark the files as deleted , when you want to delete
completly the files , you have to call the DeletedItems() method to see
how many files are marked deleted and after that you use the Clean()
method to delete completly the files from the archive. I have
implemented it like that, cause it's better in my opinion..

And my parallel archiver uses a hashtable to store the file names and
there corresponding file positions so that you can direct access to
files inside the archive when decompressing, and deleting etc. so it's
very fast.

Please look at the test_pzlib.pas, test_plzo.pas, test_plz4.pas ,
test_pbzip.pas and test_plzma.pas demos inside the zip file to see how
to use my Parallel archiver.

And please don't use directly the ParalleZlib.pas that i have included
inside the Parallel archiver zip file, cause i have modified it to work
correclty with my Parallel archiver.

If you want to use my ParallelZlib library just download it from my
website, or download my other Parallel compression library.

You can now use my Parallel archiver as a hashtable from the hardisk
with 0(1) access, you can for example
stream your database row with my ParallelVarFiler into a memory stream
or into a string, and store it with my Parallel archiver into an
archive, and after that your can access your rows into the hardisk as a
hashtable with O(1) access, you can use it like that as a database if
you have for example id keys that you want to map to database rows,
that will be a good idea to
use my Parallel archiver as a hashtable.

Question:

What's your newest ideas behind your parallel archiver ?

Answer:

Of course my Parallel Archiver supports Parallel compression etc. but my
newest ideas behind my Parallel Archiver are the following:

I have played with Winzip and 7Zip , but if you want to give some files
to extract or to test there integrity, they both (Winzip and 7Zip) will
use sequential access and that's bad i think, so i have decided to
implement a O(1) access that is very fast for extraction and and for
testing the integrity etc. into my Parallel Archiver and for that i have
used an in-memory hashtable that maintains the files names and there
correponding file positions , and my second idea is that my Parallel
Archiver is fault tolerant to power failures and also if your hardisk is
full and you get file corruption etc. so my Parallel Archiver is fault
tolerant to this kind of problems , 7Zip and Winzip i think are not
fault tolerant to those kind of problems.

I have just played with 7Zip , and i have compressed 3 files into the
archive and after than i have opened the archive with an editor and i
have deleted some bytes and i have saved the file and after that when i
have tried to open the archive, 7zip responded that the file is
corrupted, so 7Zip is not fault tolerant, i think that with WinZip it's
the same, but i have done the same test with my Parallel archiver, and
it's recovering from the file damage, so it's fault tolerant to this
kind of damages, such as power failures and when also the disk is full
and you get a file corruption etc. I have implemented this kind of
fault tolerancy into my Parallel archiver.

I have updated my Parallel archiver and i have added the Update()
method, it's overloaded now in the first version you pass a key name and
a TStream, and in the second version you pass a key name and a filename.
Please look at the test_pzlib.pas demo inside the zip file to see how to
use those methods.

So now you have all the methods to use my Parallel archiver as a
Hashtable from the hardisk with direct access to the compressed and/or
encrypted data with O(1) complexity and very fast acces to the data ,
the DeleteFiles() has a O(1) complexity the ExtractFiles() and Extract()
have also O(1) complexity and GetInfo() is also O(1) and of course the
AddFiles() is also O(1), the Test() method is also O(1). So now it's
extremely fast.
When you want to do solid compression with my Parallel archiver using
Bzip , you can use the same method as is using Tar , you can first
archive your file with the compression level 0 and after that compress
all your archive file using Bzip, and when you want to encrypt your data
with Parallel AES encryption just give a password by setting the
password property and when you don't want to encrypt just set the
password property to a null string or don't set the password property ,
that's all.

Parallel archiver supports the storing and restoring of the following
file attributes:

Hidden, Archive, System, and Read only attributes.

To store and restore them just set the AddAttributes property like this:

pzr.AddAttributes:=[ffArchive,ffReadOnly,ffHidden,ffSystem];
I have added the in-memory archives support, cause this way Parallel
archiver will be much more faster than disk archives, and you will be
able to lower much more the response time and to lower the load on your
server.

If you want to use an in-memory archive, pass an empty string to the
file name in the constructor, like this:

pzr :=TPLZ4Archiver.Create('',1000,4);

And if you want to read your in-memory archive , read from the Stream
property that is exposed(a TStream) like this:

pzr.stream.position:=0;
A_Memory_Stream.copyfrom(pzr.stream,pzr.stream.size)

You can also load your archive from a file or memory stream just by
assigning your file or memory stream to the Stream property (a TStream).

I have overloaded the GetKeys() method , now you can use wildcards, you
can pass the wildcard in the first argument and the TStringList in the
second argument like this: pzr.getkeys('*.pas',st);
and after that call the ExtractFiles() method and pass it the TStringList.

As you have noticed, the programming interface of my Parallel archiver
is very easy to use.

And read this:

"We're a video sharing site located in China. We rewrote the PHP
memcached client extension by replacing zlib with QuickLZ. Then our
server loads were dramatically reduced by up to 50%, the page response
time was also boosted. Thanks for your great work!

Jiang Hong"

http://www.quicklz.com/testimonials.html

http://www.quicklz.com/

So as you have noticed , like QuickLZ or Qpress, i have implemented
Parallel archiver to be very fast also.

By using my Parallel Zlib or my Parallel LZ4 or my Parallel LZO
compression algorithms my Parallel archiver will be very very fast and
as i have wrote in my webpage:

"So now you have all the methods to use my Parallel archiver as a
Hashtable from the hardisk with direct access to the compressed and/or
encrypted data with O(1) very fast acces to the data , the DeleteFiles()
has a O(1) complexity the ExtractFiles() and Extract() have also O(1)
complexity and GetInfo() is also O(1) and of course the AddFiles() is
also O(1), the Test() method is also O(1). So now it's extremely fast. "

You can even use my Parallel archiver as a hash table database from the
Harddisk to lower more the load on your server (from internet or
intranet) and boost the response time.....

I have used solid compression like with the tar.lzma format and i have
found that my Parallel archiver, with maximum level compression that is
clLZMAMax, compresses to the same size as 7Zip with maximum level
compression and with a dictionary size of 8 MB and it compresses 13%
better than WinRar with maximum level compression and it is muh better
than WinZip on compression ratio .

How to use solid compression with my Parallel archiver ?

Just archive your files with clLZMANone and after that compress your
archive with clLZMAMax, Parallel archiver will then compress to the same
size as 7Zip with maximum level compression and with a dictionary size
of 8 MB and it will compress 13% better than WinRar with maximum level
compression and it will compress muh better than WinZip with maximum
level compression .

I have updated my Parallel archiver to a new version and i have decided
to include Parallel LZ4 compression algorithm (one of the fastest in
the world) into my Parallel archiver, so to compress bigger data such
us Terabytes data you can use my Parallel LZO or my Parallel LZ4
compression algorithms with my Parallel archiver, i have also added the
high compression mode to Parallel LZ4 compression algorithm, now for a
fast mode use clLZ4Fast and for the high compression mode use clLZ4Max.
The Parallel LZ4 high compression mode is interresting also, it
compresses much better than LZO and it is very very fast on
decompression, faster than Parallel LZO. I have included a test_plz4.pas
demo inside my Parallel archiver zip file to show you how to use
Parallel LZ4 algorithm with my Parallel archiver.

Here is the LZ4 website if you want to read about it:

http://code.google.com/p/lz4/


I have downloaded also the IHCA compression algorithm from the
following website:

http://objectegypt.com/

And i have wrote a Parallel IHCA and begin testing it against my
Parallel LZO and my Parallel LZ4 , they say on the IHCA website that it
has the same performance as the LZO algorithm , but i have noticed on
my benchmarks that Parallel IHCA(that i wrote) is much more slower than
my Parallel LZO and my Parallel LZ4 , so i think the IHCA compressoin
algorithm is a poor quality software that you must avoid, so please use
my Parallel archiver and Parallel compression library cause with my
Parallel LZO and my Parallel LZ4 they are now one of the fastest in the
world.

I have also downloaded the following QuickLZ algorithm from:

http://www.quicklz.com/

and i have wrote a Parallel QuickLZ and i have tested it against my
Parallel LZO and Parallel LZ4 , and i have noticed that Parallel QuickLZ
is slower than my Parallel LZ4 algorithm, other than that with QuickLZ
you have to pay for a commercial license , but with my Parallel
archiver and my Parallel compression library you have to pay 0$ for a
commercial license.

My Parallel archiver was updated, i have ported the Parallel LZ4
compression algorithm(one of the fastest in the world) to the Windows
64 bit system, now Parallel LZ4 compression algorithm is working
perfectly with Windows 32 bit and 64 bit, if you want to use Parallel
LZ4 with Windows 64 bit just copy the lz4_2.dll inside the LZ4_64
directory (that you find inside the zip file) to your
current directory or to the c:\windows\system32 directory, and if you
want to use the Parallel LZ4 with Windows 32 bit use the lz4_2.dll
inside the LZ4_32 directory.

Here is more information about my Parallel archiver:

Parallel LZO supports Windows 32 bit and 64 bit

Parallel Zlib supports Windows 32 bit and 64 bit

Parallel LZ4 supports Windows 32 bit and 64 bit

Parallel Bzip is Windows 32 bit only

Parallel LZMA is Windows 32 bit only

But even if Parallel LZMA and Parallel Bzip are windows 32 bit only , my
Parallel archiver supports Terabytes files and your archive can grow to
Terabytes size even with 32 bit windows executables, and that's good.

And Look also at the prices of the XCEED products:

XCEED Streaming compression library:

http://xceed.com/Streaming_ActiveX_Intro.html

and the XCEED Zip compression library:

http://xceed.com/Zip_ActiveX_Intro.html

http://xceed.com/pages/TopMenu/Products/ProductSearch.aspx?Lang=EN-CA


I don't think the XCEED products supports parallel compression as does
my Parallel archiver
and my Parallel compression library..

And just look also at the Easy compression library for example, if you
have noticed also it's not a parallel compression library.

http://www.componentace.com/ecl_features.htm

And look at its pricing:

http://www.componentace.com/order/order_product.php?id=4


My Parallel archiver and parallel compression library costs you 0$ and
they are parallel compression libraries, and they are very fast and very
easy to use, and they supports Parallel LZ , Parallel LZ4, Parallel
LZO, Parallel Zlib, Parallel Bzip and Parallel LZMA and they come with
the source codes and much more...

Hope you will enjoy my Parallel archiver.

Here is the public methods that i have implemented:

Constructor Create(file1:string,size:integer;nbrprocs:integer);
- Creates a new TPZArchiver ready to use, size is the hashtable size for
the index(Key file names and the corresponding file position ,and file1
is the file archive, nbrprocs is the number of cores you have specify to
run Zlib , LZ4, LZO , Bzip and LZMA in parallel.

Destructor Destroy;
- Destroys the TPZArchiver object and cleans up.

function AddFiles;
- Adds the files to the archive.

function AddStream;
-Adds the stream to the archive.

function DeleteFiles;
- Deletes the TStringList content from the archive.

function Erase;
- Erases the data inside the archive and inside the hashtable.

function Update;
- Updates the file or the stream inside the archive

function ExtractFiles;
- Extracts the TStringList content from the archive.

function ExtractAll;
- Extracts all the files from the archive.

function Extract;
-Extracts the file to the stream.

function Test;
- Tests the integrity of the files inside the archive.

function GetInfo;
- Gets the file info that is returned in a TZSearchRec record.

function ClearFile;
- Deletes all contents of the archive.

function Clean:boolean
- Cleans the marked deleted items from the file.

function DeletedItems:integer
- Returns the number of items marked deleted.

function LoadIndex:boolean
- Loads the the file names keys and there correponding file positions
values from the file passed to the constructor into the hashtable.

function Exists(Name : String) : Boolean;
- Returns True if a file Name exists

procedure GetKeys(Strings : Tstrings);
- Fills up a TStrings descendant with all the file names.

function Count : Integer;
- Returns the number of files inside the archive.


PUBLIC PROPERTIES:

Indicator : boolean
- To show the compression and decompression indicator.
CompressionLevel;
- Sets and reads the compression level.
Overwrite:boolean
- To update and overwrite the file without asking .
Freshen: boolean
-Adds newer files to the archiver and extract newer files from the archive.
AddRecurse: boolean
- AddFiles() method will recurse on subdirectories.
Stream:boolean
- The archive is exposed as a TStream, use it for in-memory archive
or disk archive.
AddAttributes: TAttrOptions
- FindFile attributes for the AddFiles() method, look inside FindFile
component.

Language: FPC Pascal v2.2.0+ and Lazarus / Delphi 7 to 2007:
http://www.freepascal.org/

Operating Systems: Win32 and Win64

And inside defines.inc you can use the following defines:

{$DEFINE CPU32} and {$DEFINE Win32} for 32 bit systems

{$DEFINE CPU64} and {$DEFINE Win64} for 64 bit systems

Required FPC switches: -O3 -Sd -dFPC -dWin32 -dFreePascal

-Sd for delphi mode....

Required Delphi switches: -DMSWINDOWS -$H+ -DDelphi



Thank you,
Amine Moulay Ramdane.







==============================================================================
TOPIC: Combination of sigwait() with sigaction()?
http://groups.google.com/group/comp.programming.threads/t/8fb8e48e21c67023?hl=en
==============================================================================

== 1 of 5 ==
Date: Thurs, Nov 21 2013 8:50 am
From: Markus Elfring


Hello,

I have found an interesting article about waiting for signals in a separate
thread. A source code skeleton is shown.
http://devcry.heiho.net/2009/05/pthreads-and-unix-signals.html

The author suggested also to install an empty signal handler by the function
"sigaction". How do you think about this suggestion?
Is the mentioned indication of non-default signal actions useful here?

Regards,
Markus




== 2 of 5 ==
Date: Thurs, Nov 21 2013 9:02 am
From: Rainer Weikusat


Markus Elfring <Markus.Elfring@web.de> writes:
> I have found an interesting article about waiting for signals in a separate
> thread. A source code skeleton is shown.
> http://devcry.heiho.net/2009/05/pthreads-and-unix-signals.html
>
> The author suggested also to install an empty signal handler by the function
> "sigaction". How do you think about this suggestion?
> Is the mentioned indication of non-default signal actions useful here?

The author is somewhat confused here: sigwait returns "pending signals",
this means "signals which don't cause any 'action' because they're
blocked", hence, no "default actions" will happen. But the disposition
of a signal can be set to something other than "default action" or "signal
handler", namely, to "ignore this signals" and signals set to be ignored
don't become pending signals, they're just discarded (and hence, sigwait
will never return them). The main annoyance here is that the default
disposition of SIGCHLD is "ignore", hence, without setting that to
something else, sigwait (and similar routines) will never return a
SIGCHLD.




== 3 of 5 ==
Date: Thurs, Nov 21 2013 9:32 am
From: Rainer Weikusat


Rainer Weikusat <rweikusat@mobileactivedefense.com> writes:

> Markus Elfring <Markus.Elfring@web.de> writes:
>> I have found an interesting article about waiting for signals in a separate
>> thread. A source code skeleton is shown.
>> http://devcry.heiho.net/2009/05/pthreads-and-unix-signals.html
>>
>> The author suggested also to install an empty signal handler by the function
>> "sigaction". How do you think about this suggestion?
>> Is the mentioned indication of non-default signal actions useful here?
>
> The author is somewhat confused here: sigwait returns "pending signals",
> this means "signals which don't cause any 'action' because they're
> blocked", hence, no "default actions" will happen. But the disposition
> of a signal can be set to something other than "default action" or "signal
> handler", namely, to "ignore this signals" and signals set to be ignored
> don't become pending signals, they're just discarded (and hence, sigwait
> will never return them). The main annoyance here is that the default
> disposition of SIGCHLD is "ignore", hence, without setting that to
> something else, sigwait (and similar routines) will never return a
> SIGCHLD.

SUS actually leaves this (immedidately discarding ignored signals)
unspecified and at least on the two systems where I tested this (running
Linux 3.2.9 and Linux 2.6.36.4), this program

----------
#include <signal.h>
#include <stdio.h>
#include <unistd.h>

static void child(void)
{
sleep(1);
fputs("\tchild going down\n", stderr);
_exit(0);
}

static void dummy(int unused)
{}

int main(void)
{
sigset_t wanted;
int sig;

sigemptyset(&wanted);
sigaddset(&wanted, SIGINT);
sigaddset(&wanted, SIGCHLD);
sigprocmask(SIG_BLOCK, &wanted, NULL);

if (fork() == 0) child();

sigwait(&wanted, &sig);
fprintf(stderr, "got signal %d\n", sig);

signal(SIGCHLD, dummy);

if (fork() == 0) child();

sigwait(&wanted, &sig);
fprintf(stderr, "got signal %d\n", sig);

return 0;
}
------------

does indicate that a SIGCHLD was received in both cases. I remember
running into lost SIGCHLDs in the past, though, that's why I started to
install dummy handlers for everything I wanted to handle via
sigwaitsomething.




== 4 of 5 ==
Date: Thurs, Nov 21 2013 9:38 am
From: Markus Elfring


> The author is somewhat confused here: sigwait returns "pending signals",
> this means "signals which don't cause any 'action' because they're
> blocked", hence, no "default actions" will happen.

Thanks for your feedback.

I have just found that the section "12.8 Threads and Signals" of the book
"Advanced Programming in the UNIX� Environment" contains also a bit of
information for the requested issue. The corresponding handling might be
implementation-defined. Is any more clarification for such details possible?

Regards,
Markus




== 5 of 5 ==
Date: Thurs, Nov 21 2013 2:52 pm
From: "Chris M. Thomasson"


> "Markus Elfring" wrote in message
> news:bf6rviFm5kiU1@mid.individual.net...
> Hello,
> I have found an interesting article about waiting for signals in a
> separate
> thread. A source code skeleton is shown.
> http://devcry.heiho.net/2009/05/pthreads-and-unix-signals.html

> [...]

FWIW, check this crazy shi% out:

https://groups.google.com/d/topic/comp.programming.threads/lUXT4XgGzP4/discussion

;^)






==============================================================================
TOPIC: I have updated my SemaCondVar to version 1.15
http://groups.google.com/group/comp.programming.threads/t/0e2fe50d3eb4b736?hl=en
==============================================================================

== 1 of 1 ==
Date: Thurs, Nov 21 2013 9:16 am
From: aminer



Hello,


I have updated my SemaCondVar to version 1.15, i have avoided
the windows critical section and replaced it with a FIFO fair lock
so that it becomes starvation free...

SemaCondvar version 1.15

Author: Amine Moulay Ramdane.

Description:

SemaCondvar and SemaMonitor are new and portable synchronization objects
, SemaCondvar combines all the charateristics of a semaphore and a
condition variable and SemaMonitor combines all charateristics of a
semaphore and an eventcount , they only use an event object and and a
very fast and very efficient and portable FIFO fair Lock , so they are
fast and they are FIFO fair.
Now you can pass the SemCondvar's initialcount and SemCondvar's
MaximumCount to the construtor, it's like the Semaphore`s InitialCount
and the Semaphore's MaximumCount.

Like this:

t:=TSemaMonitor.create(true,0,4);

When you pass True in the first parameter of the constructor the
signal(s) will not be lost even if there is no waiting threads, if it's
False the signal(s) will be lost if there is no waiting thread.

As you will notice i have used a scalable and efficient and FIFO fair
Lock inside SemaCondVar.pas, i have made , but you will notice that
this Lock is now portable to the x86 systems and to Linux(x86) , Mac
OSX(x86) and Windows(x86), but if you want to port it to other systems
than the x86, please change inside SemaCondVar.pas the TALOCK by the
TCriticalSection of the SyncObjs unit and it will be portable to other
systems than the x86. That's all. So enjoy SemaCondvar and SemaMonitor.


You can download SemaCondVar from:

http://pages.videotron.com/aminer/


Here is the methods that i have implemented :

TSemaCondvar = class
public

constructor
Create(m1:TCriticalSection;state1:boolean=false;InitialCount1:longword=0;MaximumCount1:longword=INFINITE);
destructor Destroy; override;
function wait(mstime:longword=INFINITE):boolean;
procedure signal();overload;
procedure signal_all();
procedure signal(nbr:integer);overload;
function WaitersBlocked:integer;
end;

TSemaMonitor = class
public
constructor
Create(state1:boolean=false;InitialCount1:longword=0;MaximumCount1:longword=INFINITE);
destructor Destroy; override;
function wait(mstime:longword=INFINITE):boolean;
procedure signal();overload;
procedure signal_all();
procedure signal(nbr:integer);overload;
function WaitersBlocked:integer;

end;

Please take a look a the test.pas Object Pascal demo inside the zipfile,
compile and run it...

Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/

Operating Systems: Windows, Mac OSX , Linux , Unix...


Required FPC switches: -O3 -Sd -dFPC -dFreePascal

-Sd for delphi mode....
{$DEFINE CPU32} and {$DEFINE Windows32} for 32 bit systems

{$DEFINE CPU64} and {$DEFINE Windows64} for 64 bit systems

{$DEFINE OSX} for Mac OSX on Delphi XE4 to XE5


Thank you,
Amine Moulay Ramdane.





==============================================================================
TOPIC: Open issues in the specification for fork()?
http://groups.google.com/group/comp.programming.threads/t/e219574ddde7649b?hl=en
==============================================================================

== 1 of 11 ==
Date: Sat, Nov 23 2013 10:05 am
From: Markus Elfring


Hello,

I have read the document
"http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html" once more.
I find that some details will need further clarification, won't it?

1. Do you interpret the wording
"... If a multi-threaded process calls fork(), ..."
from the section "DESCRIPTION" in the way that it is not specified which
behaviour should be expected for the address space in an ordinary
single-threaded process?

2. Is the wording
"... The fork() function is thus used only to run new programs, and the
effects of calling functions that require certain resources between the call to
fork() and the call to an exec function are undefined. ..."
from the section "RATIONALE" a contradiction to the previous information
"... Consequently, to avoid errors, the child process may only execute
async-signal-safe operations until such time as one of the exec functions is
called. ..."?

3. Is asynchronous-signal-safety also relevant for the single-threaded use case
here?
Do you know interesting software design challenges or "realistic problems"
for this situation?

Regards,
Markus




== 2 of 11 ==
Date: Sat, Nov 23 2013 10:32 am
From: Måns Rullgård


Markus Elfring <Markus.Elfring@web.de> writes:

> Hello,
>
> I have read the document
> "http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html"
> once more. I find that some details will need further clarification,
> won't it?
>
> 1. Do you interpret the wording
> "... If a multi-threaded process calls fork(), ..."
> from the section "DESCRIPTION" in the way that it is not specified which
> behaviour should be expected for the address space in an ordinary
> single-threaded process?

No. See the top of the DESCRIPTION section:

The fork() function shall create a new process. The new process (child
process) shall be an exact copy of the calling process (parent process)
except as detailed below.

This adequately defines the single-threaded case. The part you quote
details the behaviour in a multi-threaded process.

> 2. Is the wording
> "... The fork() function is thus used only to run new programs, and
> the effects of calling functions that require certain resources
> between the call to fork() and the call to an exec function are
> undefined. ..."
> from the section "RATIONALE" a contradiction to the previous information
> "... Consequently, to avoid errors, the child process may only execute
> async-signal-safe operations until such time as one of the exec functions is
> called. ..."?

No. The part you quote from the RATIONALE section is an observation of
the typical use of fork() in a multi-threaded program (before the comma),
and a note about the consequences of the restrictions given in the
DESCRIPTION (after the comma).

The RATIONALE section exists only as background information which can be
useful for understanding why a particular behaviour is specified. If it
appears to contradict the DESCRIPTION, the latter wins.

> 3. Is asynchronous-signal-safety also relevant for the single-threaded
> use case here?

No. In the single-threaded case the state of the child process is known
so no limitations apply beyond any already present in the parent. Note
however that ordering of operations on resources shared between the two
processes (e.g. file descriptors) is not defined unless explicitly
synchronised by other means.

--
M�ns Rullg�rd
mans@mansr.com




== 3 of 11 ==
Date: Sat, Nov 23 2013 2:13 pm
From: Chris Vine


On Sat, 23 Nov 2013 19:05:22 +0100
Markus Elfring <Markus.Elfring@web.de> wrote:
[snip]
> 3. Is asynchronous-signal-safety also relevant for the
> single-threaded use case here?
> Do you know interesting software design challenges or "realistic
> problems" for this situation?

After fork() the child process is single threaded, consisting only of
a continuation of the thread which called fork(); however, it inherits
the state of the whole parent process. In a multi-threaded program, only
the parent remains multi-threaded.

This means that if, for example, a thread other than the forking()
thread holds a lock or other thread resource, it will never be released
in the child process. If the child process subsequently attempts to
lock a lock so held, such as used by malloc(), it will deadlock. This
is the principal reason for the async-signal-safe requirement:
async-signal-safe functions do not use such resources and so will not
misbehave.

This is irrelevant to single threaded programs. They can call whatever
they like after a fork().

Chris




== 4 of 11 ==
Date: Sat, Nov 23 2013 9:56 pm
From: Markus Elfring


> This is irrelevant to single threaded programs. They can call whatever
> they like after a fork().

Unless the processing context will be switched to the implementation of a signal
handler. (Asynchronous-signal-safety should be considered in an other situation
then, shouldn't it?) ;-)

Regards,
Markus





== 5 of 11 ==
Date: Sun, Nov 24 2013 2:27 am
From: Casper H.S. Dik


Markus Elfring <Markus.Elfring@web.de> writes:

>Hello,

>I have read the document
>"http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html" once more.
>I find that some details will need further clarification, won't it?

>1. Do you interpret the wording
> "... If a multi-threaded process calls fork(), ..."
> from the section "DESCRIPTION" in the way that it is not specified which
>behaviour should be expected for the address space in an ordinary
>single-threaded process?

Well, the description starts with:

" .... The new process (child process) shall be an exact copy of
the calling process (parent process) except as detailed below:"

So what is listed for the multi-threaded process is one of the
exceptions; specifically, I believe it says that the stacks of the other
threads aren't part of the new process.

>2. Is the wording
> "... The fork() function is thus used only to run new programs, and the
>effects of calling functions that require certain resources between the call to
>fork() and the call to an exec function are undefined. ..."
> from the section "RATIONALE" a contradiction to the previous information
> "... Consequently, to avoid errors, the child process may only execute
>async-signal-safe operations until such time as one of the exec functions is
>called. ..."?

This is all about multi-threaded programs; and in such programs what functions
you can call in the child after fork() is restricted to async-signal-safe
functions.

>3. Is asynchronous-signal-safety also relevant for the single-threaded use case
>here?

No, except when fork() is called from a signal handler.

> Do you know interesting software design challenges or "realistic problems"
>for this situation?

Yes. Any form of malloc(), exit() instead of _exit(), etc, may lead
to problems which likely happen randomly and probably after you've
shipped the code to a customer.

Casper




== 6 of 11 ==
Date: Sun, Nov 24 2013 7:39 am
From: Rainer Weikusat


Casper H.S. Dik <Casper.Dik@OrSPaMcle.COM> writes:
> Markus Elfring <Markus.Elfring@web.de> writes:

[...]

>>2. Is the wording
>> "... The fork() function is thus used only to run new programs, and the
>>effects of calling functions that require certain resources between the call to
>>fork() and the call to an exec function are undefined. ..."
>> from the section "RATIONALE" a contradiction to the previous information
>> "... Consequently, to avoid errors, the child process may only execute
>>async-signal-safe operations until such time as one of the exec functions is
>>called. ..."?
>
> This is all about multi-threaded programs; and in such programs what functions
> you can call in the child after fork() is restricted to async-signal-safe
> functions.

This is all about the people who wrote the pthreads-specification
fighting the other tribe of people who are Violently(!!1) opposed to
multi-threading but purposely not defining any sensible semantics for
fork in multi-threaded processes. Consequently, the UNIX(*) standard is
useless here and best ignored: For any existing platform, the behaviour
is necessarily defined and code can be written to work in such an
environment.

[...]

>> Do you know interesting software design challenges or "realistic problems"
>>for this situation?
>
> Yes. Any form of malloc(), exit() instead of _exit(), etc, may lead
> to problems which likely happen randomly and probably after you've
> shipped the code to a customer.

If the failures are demonstrably random, that is, they occur because the
people who wrote the system code added stuff like

if (random() % 15 < 3) *(int *)(random()) = 12;

with some guard to trigger only in multi-threaded programs, that would
be a problem of the customer who should be more careful when chosing
suppliers.




== 7 of 11 ==
Date: Sun, Nov 24 2013 4:23 pm
From: Casper H.S. Dik


Rainer Weikusat <rweikusat@mobileactivedefense.com> writes:

>This is all about the people who wrote the pthreads-specification
>fighting the other tribe of people who are Violently(!!1) opposed to
>multi-threading but purposely not defining any sensible semantics for
>fork in multi-threaded processes. Consequently, the UNIX(*) standard is
>useless here and best ignored: For any existing platform, the behaviour
>is necessarily defined and code can be written to work in such an
>environment.

I think this is completely unfair as it are those who worked on the
implementation and those who wrote the standard knew exactly the
two choices they had; they picked one of the two choices and you
seem to disagree with that particular choice.

>If the failures are demonstrably random, that is, they occur because the
>people who wrote the system code added stuff like

You don't quite get exactly what I'm saying; any program using threads
no longer has a well-defined order in which all the instructions are
evaluated. In such a problem errors in logic, such as those not
adhering with "calling only calling async-signal-safe after fork",
will occur seemingly randomly as it depends on what the other threads
are doing.

Casper




== 8 of 11 ==
Date: Sun, Nov 24 2013 5:19 pm
From: Chris Vine


On 25 Nov 2013 00:23:05 GMT
Casper H.S. Dik <Casper.Dik@OrSPaMcle.COM> wrote:
[snip]
> I think this is completely unfair as it are those who worked on the
> implementation and those who wrote the standard knew exactly the
> two choices they had; they picked one of the two choices and you
> seem to disagree with that particular choice.

It was also in my view the better choice - I just don't like forkall(),
as it can make the program more difficult to reason about, particularly
for programs using a shared resource such as I/O (and what don't),
which can turn forkall() into a bug factory.

The only purpose for calling POSIX fork() in a multi-threaded program is
to follow it with a call to exec*() (perhaps after setting up pipes with
dup2() and the like), in which case the async-signal-safe restriction
is fine: you do your other set up (including any memory allocation)
before the fork() and not after. For other purposes, in a
multi-threaded program conforming to POSIX you start a thread, not a
process.

pthread_atfork() is completely broken. That can cause problems with
single threaded programs that use multi-threaded libraries without
taking the care to understand that what they are linking to is
multi-threaded, but there we are. Know what you are linking to is, I
guess, the best answer.

Chris




== 9 of 11 ==
Date: Mon, Nov 25 2013 4:08 am
From: Casper H.S. Dik


Chris Vine <chris@cvine--nospam--.freeserve.co.uk> writes:

>It was also in my view the better choice - I just don't like forkall(),
>as it can make the program more difficult to reason about, particularly
>for programs using a shared resource such as I/O (and what don't),
>which can turn forkall() into a bug factory.

Originally, Solaris did came with its own threads library and in that
thread implemetation had fork1() and fork() (aka forkall()).
Later they added a pthread implementation and the pthread implementaton
needed to use fork1() for fork(), so there were two different
libraries.

If you didn't link with -lthread or -lpthread, you got stubs for many
of the thread calls (such as mutex primitives) so a library could be
written as if it was multi-threaded but would work in a single threaded
application.

>The only purpose for calling POSIX fork() in a multi-threaded program is
>to follow it with a call to exec*() (perhaps after setting up pipes with
>dup2() and the like), in which case the async-signal-safe restriction
>is fine: you do your other set up (including any memory allocation)
>before the fork() and not after. For other purposes, in a
>multi-threaded program conforming to POSIX you start a thread, not a
>process.

And so we now have posix_spawn() which does much of what you generally
do between fork() and exec().

>pthread_atfork() is completely broken. That can cause problems with
>single threaded programs that use multi-threaded libraries without
>taking the care to understand that what they are linking to is
>multi-threaded, but there we are. Know what you are linking to is, I
>guess, the best answer.

That is perhaps more a question quality of implementation and not so
much an issue with pthread_atfork(). In Solaris 10 there is no longer
a difference between a single threaded program and a multi-threaded
program with only one thread. So there is really no issue with linking
with libraries which may use threads.

As a result of making threads the standard, fork() is
now *always* fork1() though forkall() is still available.

Casper




== 10 of 11 ==
Date: Mon, Nov 25 2013 4:21 am
From: Rainer Weikusat


Chris Vine <chris@cvine--nospam--.freeserve.co.uk> writes:
> On 25 Nov 2013 00:23:05 GMT
> Casper H.S. Dik <Casper.Dik@OrSPaMcle.COM> wrote:
> [snip]
>> I think this is completely unfair as it are those who worked on the
>> implementation and those who wrote the standard knew exactly the
>> two choices they had; they picked one of the two choices and you
>> seem to disagree with that particular choice.

[...]

> The only purpose for calling POSIX fork() in a multi-threaded program is
> to follow it with a call to exec*() (perhaps after setting up pipes with
> dup2() and the like),

For some people, the only purpose of fork they can possibly imagine is
as halfway useless incumbment on the way to executing another program
and - suprisingly and certainly by mere coincidence - the people who
wrote the phtreads specification and produced this litte gem are among
them. This makes two extreme standpoints, namely, "multi-threading is
useless and evil and 'cooperating sequential processes' is all God ever
wanted men to use" and "multiple processes running the same program are
totally useless, dangerous, outlandish, alien and socialist(!!1) and our
nice, shiny threads are a much better modern solution to any problem one
could conceivably need to solve" and neither of both is particularly
helpful in the real world (as extreme standpoints are wont to be),
especially considering all the moss which has been growing on this
controversy since it originated last century.

When a process forks, the contents of the memory in the address space of
the new process will be identical to that of the parent at the time of
the fork. Because only the forking thread is duplicated the child, the
effect on any other threads is that they stopped asynchronously at some
unpredictable (as seen from the 'sequential flow of time' of each
particular thread) time between executeing two instructions. This is
exactly what also happens when a signal handler is invoked because of an
asynchronous signal, hence, without special precautions, only
async-signal-safe functions can be called safely in the new
process. Another problem would be that POSIX demands that mutexes can
only be unlocked by the thread which locked them which implies that a
mutex which was held by some other thread than the one which forked
cannot ever be unlocked in the new process.

But signal handlers are not really restriced to async-signal safe calls
because they're free to do anything provided that 'main thread of
execution' was interrupted in an 'async-signal safe section' of the
code (the requirement is [paraphrase] 'all functions defined by this
specification shall work as described in the presence of asynchronous
signal except when function which is not async-signal safe is executed
from a signal handler which interrupted another not async-signal safe
function. In this case, the behaviour is undefined'). Likewise, there's
no restriction regarding what the forked process may safely do provided
all threads were executing something async-signal safe at the time of
the fork and no mutexes held by any of them will be touched in the new
process. And this is perfectly doable, especially considering that -
practically - some things are async-signal safe despite they're not
required to be, eg, blocking on a locked mutex (or semaphore). In an
ideal universe, implementations would be required to document how they
deal with multi-threaded access to shared resources and one could even
envision an API for safe forking modelled similar to the existing
facilities for dealing with asynchronous signals. In absence of both, it
is still possible to confine all other threads of a process to some safe
location during the fork and release them afterwards.

This is obviously not going to work for the most general imaginable
case, where 'the process' runs arbitrary, binary only third-party code
whose actions can neither be controlled nor predicted but this is not
the only case.




== 11 of 11 ==
Date: Mon, Nov 25 2013 7:52 am
From: Rainer Weikusat


Casper H.S. Dik <Casper.Dik@OrSPaMcle.COM> writes:
> Rainer Weikusat <rweikusat@mobileactivedefense.com> writes:
>
>>This is all about the people who wrote the pthreads-specification
>>fighting the other tribe of people who are Violently(!!1) opposed to
>>multi-threading but purposely not defining any sensible semantics for
>>fork in multi-threaded processes. Consequently, the UNIX(*) standard is
>>useless here and best ignored: For any existing platform, the behaviour
>>is necessarily defined and code can be written to work in such an
>>environment.
>
> I think this is completely unfair as it are those who worked on the
> implementation and those who wrote the standard knew exactly the
> two choices they had; they picked one of the two choices and you
> seem to disagree with that particular choice.

I 'disagree' with this here:

There are two reasons why POSIX programmers call fork(). One
reason is to create a new thread of control within the same
program (which was originally only possible in POSIX by creating
a new process);

[...]

When a programmer is writing a multi-threaded program, the first
described use of fork(), creating new threads in the same
program, is provided by the pthread_create() function. The
fork() function is thus used only to run new programs,

because while this is not an outright lie, it's a carefully
weasel-worded piece of disinformation supposed to lent some appearance
of rationality to the entirely political bias of the author: Fork does
not create 'a new thread of control running the same program' (which has
a process chained to its ankle for some shitty, historical reason nobody
in his right mind could possibly understand) but it creates a new
process running the same program and this includes creating a new thread
of control among some other things, most prominently, a new address
space.

There's also the practical concern that adding a new thread to some
existing code unleashes 'immediate pthread madness' which is supposed to
change the semantics of the working code retroactively: Something which
used to be a perfectly legitimate use of fork is now considered to have
undefined behaviour, regardless of how the interactions between the
existing 'single-threaded process code' and the code running in the new
thread actually happen to work. This means 'using pthreads' is meant to
be an all-or-nothing choice: Either the process remains strictly
single-threaded. Or everything has to be rewritten to be 'strictly
pthreaded' insofar this is possible (which might not be the case since
the code could rely on properties of fork pthread_create does not have)
and this looks a lot like a useless effort to me, IOW, 'pthreads' trying
to punish me for using 'traditionally written UNIX(*) code'.




==============================================================================

You received this message because you are subscribed to the Google Groups "comp.programming.threads"
group.

To post to this group, visit http://groups.google.com/group/comp.programming.threads?hl=en

To unsubscribe from this group, send email to comp.programming.threads+unsubscribe@googlegroups.com

To change the way you get mail from this group, visit:
http://groups.google.com/group/comp.programming.threads/subscribe?hl=en

To report abuse, send email explaining the problem to abuse@googlegroups.com

==============================================================================
Google Groups: http://groups.google.com/?hl=en

No comments: