err = nsServiceManager::GetService(kIMyServiceCID, kIMyServiceIID,
err = nsServiceManager::GetService(kIMyServiceCID, NS_GET_IID(IMyService),
AsyncNoShutdownTest(int testNumber){    // This test gets a service, and also gets an async request for shutdown,    // but the service doesn't get shut down because some other client (who's    // not participating in the async shutdown game as he should) is     // continuing to hang onto the service. This causes myServ variable to     // get set to NULL, but the service doesn't get unloaded right away as    // it should.    nsresult err;    err = BeginTest(testNumber);    if (err != NS_OK) return err;    // Create some other user of kIMyServiceCID, preventing it from    // really going away:    IMyService* otherClient;    err = nsServiceManager::GetService(kIMyServiceCID, kIMyServiceIID,                                       (nsISupports**)&otherClient);    if (err != NS_OK) return err;    err = AsyncShutdown(testNumber);    if (err != NS_OK) return err;    err = EndTest(testNumber);    // Finally, release the other client.    err = nsServiceManager::ReleaseService(kIMyServiceCID, otherClient);    return err;}