Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#2 closed task (fixed)

Port all important basic classes from src/corelib

Reported by: diver Owned by: diver
Priority: major Milestone: QtCore Beta
Component: QtCore Version: 4.5.1 Beta 1
Severity: Keywords:
Cc:

Description (last modified by dmik)

Tracker for general discussion about the milestone.

Change History (11)

comment:1 Changed 10 years ago by diver

  • Status changed from new to accepted
  • Type changed from defect to task

comment:2 Changed 10 years ago by diver

  • Summary changed from port of all basic classes to Port of all basic classes

comment:3 Changed 10 years ago by dmik

  • Description modified (diff)
  • Summary changed from Port of all basic classes to Port all important basic classes from src/corelib

comment:4 Changed 10 years ago by dmik

Before I can go further with individual classes, I need to make some common work like taking OS/2 platform into account in global headers (where not already done), in .pro and .pri files and make sure a dummy QtCore?.dll can be built.

I'm working on that now.

comment:5 Changed 10 years ago by dmik

Making some progress: moc and rcc already build.

comment:6 Changed 10 years ago by dmik

Well, QtCore4.dll {{almost}} builds now (almost = some unimplemented key classes are still disabled so weakld reports about many unresolved externals and the link stage fails). Moving back to individual tasks.

comment:7 Changed 10 years ago by dmik

Ok, after r77 I finally got the first version of QtCore4.dll compiled and built. I'll do some more tests tomorrow and I expect to close the milestone after that.

comment:8 Changed 10 years ago by dmik

The examples/thread/semaphores example seems to build work at first sight, but there are some problems with atomic operations (used for mutex and condition variable implementations) where they are actually not atomic. Investigating.

comment:9 Changed 10 years ago by dmik

Okay, it turned out that blindly copying the QMutex stuff from Qt3 was incorrect: as said above, Qt4 uses atomic operations for mutexes therefore the only native primitive necessary for QMutex is an event semaphore, not a native mutex as one may think (using "lightweight" atomic ops for QMutex makes locking/unlocking much faster in cases when several intensive worker threads fight for the mutex; the native primitive is not involved at all in this case). Fixed in r82.

The examples/thread/semaphores example works now, as well as waitconditions, Whoo! I think it's enough for the first beta version of QtCore4.

comment:10 Changed 10 years ago by dmik

  • Resolution set to fixed
  • Status changed from accepted to closed

I think that this milestone can be considered as done.

comment:11 Changed 10 years ago by diver

ok gona close it :)

Note: See TracTickets for help on using tickets.