Wednesday, January 27, 2010

comp.programming.threads - 10 new messages in 6 topics - digest

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

comp.programming.threads@googlegroups.com

Today's topics:

* Set processor core affinity to a thread - 2 messages, 2 authors
http://groups.google.com/group/comp.programming.threads/t/4a3ea7890cf14c4f?hl=en
* CFP: The 2010 International Conference on Software Engineering Research and
Practice (SERP'10), USA, July 2010 - 1 messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/383a7a435e2e4956?hl=en
* memory_order_acquire/release in terms of LoadStore/LoadLoad/... - 2 messages,
2 authors
http://groups.google.com/group/comp.programming.threads/t/c65d8b1eb19fcc31?hl=en
* MPlayerXP-0.7.95 has been released - 1 messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/600e03e8817a9069?hl=en
* An example multithreading puzzle - 3 messages, 3 authors
http://groups.google.com/group/comp.programming.threads/t/384e68160e8a32bb?hl=en
* Earn Extra Cash $100 to $200 Daily... Processing Emails Online ! - 1
messages, 1 author
http://groups.google.com/group/comp.programming.threads/t/9c293f0f39e56fd7?hl=en

==============================================================================
TOPIC: Set processor core affinity to a thread
http://groups.google.com/group/comp.programming.threads/t/4a3ea7890cf14c4f?hl=en
==============================================================================

== 1 of 2 ==
Date: Mon, Jan 25 2010 9:12 pm
From: Jonathan de Boyne Pollard




Danger lies there. Windows does not absolutely guarantee that
if you have affinity set, you will only ever execute on that core. If
the scheduler feels it has to run you on another one, it will.

Humm... Can you please provide me with some official
documentation that explains how SetThreadAffinityMask()
is not reliable?
BTW, are you sure that you are not writing about SetThreadIdealProcessor()?
Or, perhaps are you writing about the fact that if processor P1 is
running Thread T, and you bind the affinity of T toprocessor P1, then T
will continue to run on P1 until it is rescheduled on P2?

It is my understanding that if you call SetThreadAffinityMask()
and disallow the current processor, the call will not return until the
thread has been rescheduled.


Your understanding is certainly in agreement with the Microsoft
documentation, referenced earlier in this discussion thread.  (-:


== 2 of 2 ==
Date: Tues, Jan 26 2010 3:21 pm
From: David Schwartz


On Jan 25, 11:14 pm, "Chris M. Thomasson" <n...@spam.invalid> wrote:

> "If the new thread affinity mask does not specify the processor that is
> currently running the thread, the thread is rescheduled on one of the
> allowable processors."
>
> in the document:
>
> http://msdn.microsoft.com/en-us/library/ms686247(VS.85).aspx
>
> However, it does not really clarify if the rescheduling occurs _before_ the
> actual function returns.
>
> Humm...

True. I would consider it quite foolish to rely on this function to
make any kind of guarantees.

DS

==============================================================================
TOPIC: CFP: The 2010 International Conference on Software Engineering Research
and Practice (SERP'10), USA, July 2010
http://groups.google.com/group/comp.programming.threads/t/383a7a435e2e4956?hl=en
==============================================================================

== 1 of 1 ==
Date: Tues, Jan 26 2010 12:13 am
From: "A. M. G. Solo"


It would be greatly appreciated if this announcement could be
shared with individuals whose research interests include
software engineering research and practice. Thanks.
-------
CALL FOR PAPERS

SERP'10
The 2010 International Conference on Software
Engineering Research and Practice

Date and Location: July 12-15, 2010, Las Vegas, USA

You are invited to submit a full paper for consideration. All
accepted papers will be published in the SERP conference
proceedings (in printed book form; later, the proceedings will
also be accessible online).

SCOPE: Topics of interest include, but are not limited to, the
following:

O Software architectures
O Software design and design patterns
O Architectural analysis and verifications Methods
O Quality oriented software architecture (design and Support)
O Software reliability, safety and security methods
O Software reuse and component engineering
O UML/MDA and AADL
O Object oriented technology (design and analysis)
O Software metrics
O Reverse and architectural recovery methods
O Domain specific software engineering
O Aerospace software and system engineering
O Software engineering methodologies
O Survivable systems
O Engineering of safety/mission critical systems
O Software testing, evaluation and analysis technologies
O Workflow - Computer Supported Cooperative Work (CSCW)
O Project management issues
O Distributed and parallel systems
O Legal issues and standards
O Automated software design
O Real-time embedded software engineering
O Automated software design and synthesis
O Software security engineering
O Theoretic approaches (formal methods, graph, ...)
O Domain modeling and meta-modeling
O Software maintenance
O Reflection and metadata methodologies
O AI approaches to software engineering
O Component based software engineering
O Software engineering standards and guidelines
O Reports on intelligent CASE tools and eclipse plugins issues
O Multimedia in software engineering
O Usability engineering
O Novel software tools and environments
O Pervasive software engineering
O Requirement engineering and processes
O Critical and embedded software design
O Service oriented software architecture
O Human computer interaction and usability engineering
O Model based software engineering
O Aspect oriented software engineering
O Agent oriented software engineering
O Programming languages and compilers
O Case studies and emerging technologies

USEFUL WEB LINKS:
To see the DBLP list of accepted papers in the last offering of SERP,
go to
http://www.informatik.uni-trier.de/~ley/db/conf/serp/serp2009.html
The main web site of SERP'10 is accessible at
http://www.worldacademyofscience.org/worldcomp10/ws/conferences/serp10

ACADEMIC CO-SPONSORS:

Currently being prepared - The sponsors will include a number
of active research labs and centers that have helped to shape
our field. The Academic sponsors of the last offering of
SERP & WORLDCOMP included research labs and centers
affiliated with United States Military Academy, Harvard
University, MIT, Argonne National Lab., University of Illinois
at Urbana-Champaign, University of Minnesota, University of
Texas at Austin, Georgia Institute of Technology, George Mason
University, Vienna University of Technology, University of
Siegen, Russian Academy of Sciences, University of Iowa,
SECLAB (Italy), University of North Dakota, Texas A&M
University, National Institute for Health Research,
International Society of Intelligent Biological Medicine,
Academy of Biomedical Sciences and Technologies, and European
Commission. For 2010, we will also include The Berkeley
Initiative in Soft Computing/BISC of University of California,
Berkeley (confirmed.) In recent offerings of WORLDCOMP/SERP,
corporate sponsors included: Google, Intel, Salford Systems,
Element CXI, Synplicity, NIIT, SuperMicro, HPCNano, Council on
Medical & Care Compunetics, Scientific Tech. Corp., HoIP,
GridToday.

Members of the Steering Committee of WORLDCOMP 2010:
(SERP'10 is an important track of WORLDCOMP which is a federated
event. What appears below is a partial list of members of the
steering committee.)

Prof. Hamid R. Arabnia (Co-Chair, SERP'010)
Coordinator & General Co-Chair, WORLDCOMP 2010,
Professor, Computer Science,
Editor-in-Chief, The Journal of Supercomputing (Springer),
Co-Editor/Board, Journal of Computational Science (Elsevier),
Advisory Board, IEEE Technical Committee on Scalable Computing,
The University of Georgia, Georgia, USA
email: hra@cs.uga.edu

Dr. Selim Aissi
Chief Strategist - Security, Manageability and Virtualization,
Ultra Mobile Group, Intel Corporation, USA

Prof. Ruzena Bajcsy
Member, National Academy of Engineering,
IEEE Fellow, ACM Fellow,
Professor, Electrical Engineering & Computer Sciences
University of California, Berkeley, California, USA

Prof. Hyunseung Choo
ITRC Director of Ministry of Information & Communication, Korea,
Director, ITRC: Intelligent HCI Convergence Research Center, Korea,
Director, Korea Information Processing Society,
Assoc. Editor, ACM Transactions on Internet Technology,
Assoc. Editor, Transactions on Computational Science, Springer-
Verlag;
Director, Korean Society for Internet Info. (KSII) + Society for
Sim.;
Sungkyunkwan University, Korea

Prof. Andy Marsh
Director HoIP (Healthcare over Internet Protocol),
Secretary-General WABT (World Academy of Biomedical Science &
Tech.),
Vice-president ICET (Int'l Council for Engineering & Technology),
Vice-president ICMCC (Int'l Council on Medical & Care Compunetics),
Visiting Professor, University of Westminster, UK

Prof. Hassan Reza (Co-Chair, SERP'10)
University of North Dakota
North Dakota, USA

Prof. Lotfi A. Zadeh
Member, National Academy of Engineering,
IEEE Fellow, ACM Fellow, AAAS Fellow, AAAI Fellow, IFSA Fellow,
Director, Berkeley Initiative in Soft Computing,
Professor, University of California, Berkeley, USA

PURPOSE / HISTORY:

SERP'10 Conference is being held jointly (same location and dates)
with a number of other research conferences (WORLDCOMP).
WORLDCOMP is the largest annual gathering of researchers in
computer
science, computer engineering and applied computing. We anticipate
to have 2,000 or more attendees from over 85 countries
participating
at WORLDCOMP Congress. A number of individual research tracks of
the Congress have been held for many years; for example, PDPTA has
been held annually since 1995 (PDPTA'10 is the 16th annual
conference); ERSA has been held annually since 2001 (ERSA'10 is the
10th annual conference); ICAI has been held annually since 1999
(ICAI'10 is the 12th annual conference); SERP has been held
annually since 2002 (SERP'10 is the 9th annual conference). Other
tracks of WORLDCOMP Congress have similar records.

The motivation behind this federated congress is to assemble
a spectrum of affiliated research conferences into a coordinated
research meeting held in a common place at a common time. The
main goal is to provide a forum for exchange of ideas in a
number of research areas that interact. The model used to form
SERP facilitates communication among researchers from all
over the world in different fields of computer science,
computer engineering, and applied computing. Both inward research
(core areas) and outward research (multi-disciplinary, inter-
disciplinary, and applications) will be covered during the
conference. SERP makes concerted effort to reach out to
participants affiliated with diverse entities (such as:
universities, institutions, corporations, government agencies,
and research centers/labs) from all over the world.

SERP'10 will be composed of research presentations, keynote
lectures, invited presentations, tutorials, panel discussions,
and poster presentations. In recent past, keynote/tutorial/panel
speakers have included (as part of the federated event):
Prof. David A. Patterson (pioneer/computer architecture, U. of
California, Berkeley), Dr. K. Eric Drexler (known as Father of
Nanotechnology), Prof. John H. Holland (known as Father of
Genetic Algorithms; U. of Michigan), Prof. Ian Foster (known as
Father of Grid Computing; U. of Chicago & ANL), Prof. Ruzena
Bajcsy (pioneer/VR, U. of California, Berkeley), Prof. Barry
Vercoe (Founding member of MIT Media Lab, MIT), Dr. Jim Gettys
(known as X-man, developer of X Window System, xhost; OLPC),
Prof. John Koza (known as Father of Genetic Programming,
Stanford U.), Prof. Brian D. Athey (NIH Program Director, U. of
Michigan), Prof. Viktor K. Prasanna (pioneer, U. of Southern
California), Dr. Jose L. Munoz (NSF Program Director and
Consultant), Prof. Jun Liu (Broad Institute of MIT & Harvard U.),
Anousheh Ansari (CEO, Prodea Systems & first female private
space explorer), and many other distinguished speakers. To get
a feeling about the events' atmosphere, see the 2009 delegates
photos available at:
http://www.pixagogo.com/1672514104
2008 delegates photos can be viewed at:
http://www.pixagogo.com/8658134154

SUBMISSION OF PAPERS, PUBLICATION, INDEXING INFORMATION:

Prospective authors are invited to submit their papers by
uploading them to the evaluation web site at:
http://worldcomp.cviog.uga.edu/
Submissions must be uploaded by March 1, 2010 and they must
be in either MS doc (but not docx) or pdf formats (about 5
to 7 pages - single space, font size of 10 to 12). All
reasonable typesetting formats are acceptable (later, the
authors of accepted papers will be asked to follow a
particular typesetting format to prepare their final papers.)

The length of the Camera-Ready papers (if accepted) will be
limited to 7 (IEEE style) pages. Papers must not have been
previously published or currently submitted for publication
elsewhere. The first page of the draft paper should include:
title of the paper, name, affiliation, postal address, and
email address for each author. The first page should also
identify the name of the Contact Author and a maximum of 5
topical keywords that would best represent the content of
the paper. Finally, the name of the conference (ie. SERP)
must be stated on the first page.

Full papers will be evaluated for originality, significance,
clarity, impact, and soundness. Each paper will be refereed
by two experts in the field who are independent of the
conference program committee. The referees' evaluations will
then be reviewed by one member of the program committee who
will recommend a decision to the chair of the track that
the paper has been submitted to. The chair will make the
final decision. Lastly, the final papers will be reviewed
by one member of the program committee.

All accepted papers will be published in the respective
conference proceedings (in both, printed book form as well as
online). The proceedings will be indexed in Inspec / IET /
The Institute for Engineering and Technology, DBLP / Computer
Science Bibliography, and others.) The printed proceedings
will be available for distribution on site at the conference.

In addition to the publication of the proceedings, selected
authors will be invited to submit extended versions of their
papers for publication in a number of research books being
proposed/contracted with various publishers (such as, Springer,
Elsevier, IOS, ...) - these books would be composed after the
conference. Also, many chairs of sessions and workshops will
be forming journal special issues to be published after the
conference.

IMPORTANT DATES:

March 1, 2010: Submission of papers (about 5 to 7 pages)
March 25, 2010: Notification of acceptance
April 22, 2010: Final papers + Copyright + Registration
July 12-15, 2010: The 2010 International Conference on Software
Engineering Research and Practice (SERP'10)

URL: http://www.world-academy-of-science.org

MEMBERS OF PROGRAM AND ORGANIZING COMMITTEES:

The Program Committee includes members of chapters of World
Academy of Science (chapters: supercomputing; scientific
computing; AI; imaging science; databases; simulation;
software eng.; embedded systems; internet & web technologies;
communications; computer security; & bioinformatics.) The
Program Committee for SERP'10 conference is currently
being formed. Many who have already joined the committees
of individual tracks are renowned leaders, scholars,
researchers, scientists and practitioners of the highest
ranks; many are directors of research labs., fellows of
various societies, heads/chairs of departments, program
directors of research funding agencies, deans and provosts.
You can view the list of program committee of the last two
offerings of SERP at:
http://www.worldacademyofscience.org/worldcomp08/ws/conferences/serp08/committee
http://www.worldacademyofscience.org/worldcomp09/ws/conferences/serp09/committee
Program Committee members are expected to have established
a strong and documented research track record. Those
interested in joining the Program Committee should email
H. R. Arabnia (hra@cs.uga.edu) the following information for
consideration/evaluation: Name, affiliation and position,
complete mailing address, email address, a one-page biography
that includes research expertise and the name of the conference
offering to help with (ie, SERP).

LOCATION OF CONFERENCE:

SERP'10 will be held at Monte Carlo Resort, Las Vegas,
Nevada, USA (with any overflows at other near-by hotels).
This is a mega hotel with excellent conference facilities and
over 3,000 rooms. It is minutes from the airport with 24-hour
shuttle service to and from the airport. This hotel has many
recreational attractions, including: waterfalls, spa, pools,
sunning decks, Easy River, wave pool, nightly shows, many
restaurants, ... The hotel is adjacent to CityCenter
( http://en.wikipedia.org/wiki/CityCenter ) which is the
largest private development in the United States' history
(costing over $11 Billion); this offers access to additional
recreational and entertainment attractions. The negotiated
room rate for conference attendees is very reasonable.

==============================================================================
TOPIC: memory_order_acquire/release in terms of LoadStore/LoadLoad/...
http://groups.google.com/group/comp.programming.threads/t/c65d8b1eb19fcc31?hl=en
==============================================================================

== 1 of 2 ==
Date: Tues, Jan 26 2010 1:59 am
From: Alexander Terekhov

Chris Friesen wrote:
>
> On 01/25/2010 01:49 PM, Alexander Terekhov wrote:
> >
> > frege wrote:
> >>
> >> For C++0x (and for 'acquire' and 'release' terminology in general),
> >> which is correct?:
> >>
> >> A)
> >> acquire == LoadLoad + LoadStore
> >> release == StoreStore + LoadStore
> >>
> >> or
> >>
> >> B)
> >> acquire == LoadLoad
> >> release == StoreStore
>
> > memory_order_acquire/release is 'A' in C++0x.
>
> Can you point to a definitive statement that acquire/release do both
> imply LoadStore? I'm honestly asking here, not trying to be annoying.

http://www.decadentplace.org.uk/pipermail/cpp-threads/2008-December/001949.html

>
> It's a bit difficult given the different drafts, but for instance looking at
>
> http://bartoszmilewski.wordpress.com/2008/12/01/c-atomics-and-memory-ordering/
>
> there is no mention of LoadStore semantics in either acquire or release.

Note that he says

"As I discussed before, the x86 guarantees acquire semantics for loads
and release semantics for stores"

and his "x86 memory model" article

http://bartoszmilewski.wordpress.com/2008/11/05/who-ordered-memory-fences-on-an-x86/

does mention

"Stores are not reordered with older loads"

rule.

That's LoadStore in SPARC RMO terms.

regards,
alexander.


== 2 of 2 ==
Date: Tues, Jan 26 2010 6:25 am
From: Chris Friesen


On 01/26/2010 03:59 AM, Alexander Terekhov wrote:

> Note that he says
>
> "As I discussed before, the x86 guarantees acquire semantics for loads
> and release semantics for stores"
>
> and his "x86 memory model" article
>
> http://bartoszmilewski.wordpress.com/2008/11/05/who-ordered-memory-fences-on-an-x86/
>
> does mention
>
> "Stores are not reordered with older loads"
>
> rule.
>
> That's LoadStore in SPARC RMO terms.

Okay, that works.

Thanks,
Chris

==============================================================================
TOPIC: MPlayerXP-0.7.95 has been released
http://groups.google.com/group/comp.programming.threads/t/600e03e8817a9069?hl=en
==============================================================================

== 1 of 1 ==
Date: Tues, Jan 26 2010 9:10 am
From: Nickols_K

I'm glad to announce the next release of the project which opens new
epoch in its generation.

Brief list of changes for this release:
* significant acceleration of playback. Now 64-bit version can scale
640x480 up to 2000x1500+ at 25 FPS
in real-time without frame-dropping with using of non-accelerated '-vo
x11' driver
on Quad-Core AMD Phenom-9550 running at 2.2GHz
* project migrated from CVS on SVN
* Renamed command-line arguments to be more object-oriented
* Redesigned internal architecture of the player (now it being
building statically with all internal libs)
* new configure script
* modified some drivers and added new ones.
* fixed some lacks and bugs (now player can play H.264 on non-
accelerated X11 surface)
* started replacement of all inline asm code with intrinsic technology
called as pvector (portable vector library).

for detail see: http://mplayerxp.sourceforge.net

==============================================================================
TOPIC: An example multithreading puzzle
http://groups.google.com/group/comp.programming.threads/t/384e68160e8a32bb?hl=en
==============================================================================

== 1 of 3 ==
Date: Tues, Jan 26 2010 3:30 pm
From: persres


On 26 Jan, 03:38, David Schwartz <dav...@webmaster.com> wrote:
> On Jan 25, 3:23 pm, persres <pers...@googlemail.com> wrote:
>
> > I have four threads. Two of them will take half each of the first
> > part. After they are done they will update a simple variable
> > Thread1done=1 (similarly Thread2done=2).
> > Two more will take half each of the second part. After they are done,
> > they will update simple variables Thread3Done=1 (similarly
> > Thread4done=1).
>
> I think you are trying to do the scheduler's job. What if one half,
Ok.

> for whatever reason, actually takes up taking a lot longer than the
> other half? For example, some CPUs have cores that share cache. What
> if one thread gets a core that's sharing a cache with a busy core and
> one gets a core that's sharing a cache with a non-busy core? One
> thread may finish all its work really fast and then the other half is
> being finished on only one core.
>
> You should let whatever thread happens to be running take some of
> whatever work happens to be left to do, if possible. In this case,
> that's very possible. So why not do it?
>
> > Each thread will also do the following at the end of its task -
> > EnterCriticalSection(TotalThreadsdoneCS);
> > TotalThreadsdone++;
> > if (TotalThreadsdone == 4) SetEvent(AllDoneEvent);
> > ExitCriticalSection(TotalThreadsdoneCS);
>
> > First of all will this work.
>
> That should work. But what is the purpose of this event? If there's
> something that needs to be done when all the work is done, WHY NOT
> JUST DO IT?! Why signal an event that tells some other thread to do it
> when this thread is already running and has nothing else to do?!
>


I was thinking this thread would exit after this and would be
terminated.
I would suppose it is much cleaner if the main thread remains idle,
and 4 threads symmetrically come in, do tasks and go down. What do you
think?
Its of course a very minor thing in this case, but I feel it is an
important design decision and when it come to threading I am always
lost.

Perhaps you suggest the better design would be to let the main thread
handle one of these tasks (in which case only three threads would be
created). Do you think that is better?. The fourth thread created
above makes it look clean doesnt seem to have any overhead.


Any thoughts?.

> > Secondly is this trivial, any
> > optimizations or tunings possible.
> > What other issues would you consider?. Thanks
>
> It will work, and in most cases it will even work well (because in
> most cases, it pretty much doesn't matter how well you do it). Unless
> you are really pushing the limits, getting synchronization well is not
> really all that important so long as it is correct. But you are doing
> things in a very brute force way.
>
> DS
Thanks


== 2 of 3 ==
Date: Tues, Jan 26 2010 4:44 pm
From: David Schwartz


On Jan 26, 3:30 pm, persres <pers...@googlemail.com> wrote:

> > That should work. But what is the purpose of this event? If there's
> > something that needs to be done when all the work is done, WHY NOT
> > JUST DO IT?! Why signal an event that tells some other thread to do it
> > when this thread is already running and has nothing else to do?!

> I was thinking this thread would exit after this and would be
> terminated.

Why? There's still work to be done and there's a thread running.

> I would suppose it is much cleaner if the main thread remains idle,
> and 4 threads symmetrically come in, do tasks and go down. What do you
> think?

I think you should get the notion of a "main thread" out of your head.
Threads are a symmetric interface.

> Its of course a very minor thing in this case, but I feel it is an
> important design decision and when it come to threading I am always
> lost.

I agree, it's minor in this case. But you may encounter cases later
where it's not so minor. You should try not to force a context switch
from one thread to another where that context switch serves no
purpose.

> Perhaps you suggest the better design would be to let the main thread
> handle one of these tasks (in which case only three threads would be
> created). Do you think that is better?. The fourth thread created
> above makes it look clean doesnt seem to have any overhead.

Think about threads that loop like this:

1) Is there any work to do?

2) If not, wait for work, go to step 1.

3) Do some of the work.

4) Did the work we just did create new work that has to be done? If
so, add it to the list of work that needs to be done.

5) Go to step 1.

Don't try to assign work to specific threads or make specific threads
do specific tasks unless there's some specific reason to do that.
Because if you do that, you reduce the scheduler's flexibility and
that always has a cost.

One of the hardest things is figuring out the right 'graininess' to
work you're distributing. You don't want to cut 4,000 jobs into four
chunks just because you have four cores. What if one of those cores is
being used by some other process? You may finish three chunks and then
have to do an entire 1/4 of your work on only one core. Yuck.

Forget how many cores you have, that's the scheduler's problem. (And
you may or may not get all or any of those cores and that may vary
from moment to moment.) You divide your job into pieces based simply
on keeping the overhead of assigning pieces tolerable.

As a rule of thumb, the pieces of work that a thread picks up should
ideally take somewhere between 1/10th and 1/100th of a second. As a
rule of thumb, create a few more threads than the most cores you might
wind up on. (Perhaps a few extra if your threads may get blocked on
disk I/O, for example.)

DS


== 3 of 3 ==
Date: Tues, Jan 26 2010 7:53 pm
From: "Chris M. Thomasson"


"David Schwartz" <davids@webmaster.com> wrote in message
news:50fefa04-fb77-46bb-9569-3eb555a9e6ce@b10g2000yqa.googlegroups.com...
[...]

> Don't try to assign work to specific threads or make specific threads
> do specific tasks unless there's some specific reason to do that.
> Because if you do that, you reduce the scheduler's flexibility and
> that always has a cost.

Sometimes it can be beneficial for a thread to assign work to itself which
is a "form of" assigning work to specific threads. Of course this tends to
work best if you use some sort of work-stealing scheme...

;^)

[...]


==============================================================================
TOPIC: Earn Extra Cash $100 to $200 Daily... Processing Emails Online !
http://groups.google.com/group/comp.programming.threads/t/9c293f0f39e56fd7?hl=en
==============================================================================

== 1 of 1 ==
Date: Tues, Jan 26 2010 6:00 pm
From: sharda bonneau


It's About Time For YOU TO MAKE MONEY Instead Of Making Others
Ric5THIS IS A LEGTIMATE SYSTEM! You will make money...Guaranteed!
http://www.processemail.biz/


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

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: